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/07 11:18:58 UTC

[camel-quarkus] branch master updated (4e55679 -> 41ded5a)

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 4e55679  Order native tests before other kinds of tests on the CI because they take longest
     new 4d4e9f3  String Template JVM support
     new 3789b8e  Stomp JVM support
     new 32f68df  StAX JVM support
     new 2b96c00  Splunk HEC JVM support
     new 41ded5a  Splunk 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/{atmos.adoc => splunk-hec.adoc}     | 12 ++--
 .../reference/extensions/{dns.adoc => splunk.adoc} | 12 ++--
 .../reference/extensions/{dns.adoc => stax.adoc}   | 12 ++--
 .../extensions/{atmos.adoc => stomp.adoc}          | 12 ++--
 .../extensions/{atmos.adoc => stringtemplate.adoc} | 12 ++--
 docs/modules/ROOT/pages/reference/index.adoc       | 15 +++++
 extensions-jvm/pom.xml                             |  5 ++
 .../{chatscript => splunk-hec}/deployment/pom.xml  |  8 +--
 .../splunk/hec/deployment/SplunkHecProcessor.java} |  8 +--
 .../integration-test/pom.xml                       | 33 ++++++----
 .../splunk/hec/it/SplunkHecResource.java}          | 20 +++---
 .../component/splunk/hec/it/SplunkHecTest.java}    |  8 +--
 extensions-jvm/{atom => splunk-hec}/pom.xml        |  4 +-
 .../{chatscript => splunk-hec}/runtime/pom.xml     | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 .../{atmos => splunk}/deployment/pom.xml           |  8 +--
 .../splunk/deployment/SplunkProcessor.java}        |  8 +--
 .../{hipchat => splunk}/integration-test/pom.xml   | 33 ++++++----
 .../component/splunk/it/SplunkResource.java}       | 20 +++---
 .../quarkus/component/splunk/it/SplunkTest.java}   |  8 +--
 extensions-jvm/{atom => splunk}/pom.xml            |  4 +-
 extensions-jvm/{atomix => splunk}/runtime/pom.xml  | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => stax}/deployment/pom.xml   |  8 +--
 .../component/stax/deployment/StaxProcessor.java}  |  8 +--
 .../{dropbox => stax}/integration-test/pom.xml     | 33 ++++++----
 .../quarkus/component/stax/it/StaxResource.java}   | 20 +++---
 .../camel/quarkus/component/stax/it/StaxTest.java} |  8 +--
 extensions-jvm/{atom => stax}/pom.xml              |  4 +-
 extensions-jvm/{flink => stax}/runtime/pom.xml     | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 extensions-jvm/{apns => stomp}/deployment/pom.xml  |  8 +--
 .../stomp/deployment/StompProcessor.java}          |  8 +--
 .../{dropbox => stomp}/integration-test/pom.xml    | 33 ++++++----
 .../quarkus/component/stomp/it/StompResource.java} | 20 +++---
 .../quarkus/component/stomp/it/StompTest.java}     |  8 +--
 extensions-jvm/{atom => stomp}/pom.xml             |  4 +-
 extensions-jvm/{flink => stomp}/runtime/pom.xml    | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 .../deployment/pom.xml                             |  8 +--
 .../deployment/StringtemplateProcessor.java}       |  8 +--
 .../integration-test/pom.xml                       | 33 ++++++----
 .../stringtemplate/it/StringtemplateResource.java} | 20 +++---
 .../stringtemplate/it/StringtemplateTest.java}     |  8 +--
 .../{guava-eventbus => stringtemplate}/pom.xml     |  4 +-
 .../{irc => stringtemplate}/runtime/pom.xml        | 10 +--
 .../main/resources/META-INF/quarkus-extension.yaml |  6 +-
 poms/bom/pom.xml                                   | 75 ++++++++++++++++++++++
 51 files changed, 465 insertions(+), 260 deletions(-)
 copy docs/modules/ROOT/pages/reference/extensions/{atmos.adoc => splunk-hec.adoc} (63%)
 copy docs/modules/ROOT/pages/reference/extensions/{dns.adoc => splunk.adoc} (70%)
 copy docs/modules/ROOT/pages/reference/extensions/{dns.adoc => stax.adoc} (69%)
 copy docs/modules/ROOT/pages/reference/extensions/{atmos.adoc => stomp.adoc} (65%)
 copy docs/modules/ROOT/pages/reference/extensions/{atmos.adoc => stringtemplate.adoc} (64%)
 copy extensions-jvm/{chatscript => splunk-hec}/deployment/pom.xml (90%)
 copy extensions-jvm/{xslt-saxon/deployment/src/main/java/org/apache/camel/quarkus/component/xslt/saxon/deployment/XsltSaxonProcessor.java => splunk-hec/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/hec/deployment/SplunkHecProcessor.java} (88%)
 copy extensions-jvm/{ganglia => splunk-hec}/integration-test/pom.xml (74%)
 copy extensions-jvm/{xslt-saxon/integration-test/src/main/java/org/apache/camel/quarkus/component/xslt/saxon/it/XsltSaxonResource.java => splunk-hec/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecResource.java} (74%)
 copy extensions-jvm/{xslt-saxon/integration-test/src/test/java/org/apache/camel/quarkus/component/xslt/saxon/it/XsltSaxonTest.java => splunk-hec/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecTest.java} (84%)
 copy extensions-jvm/{atom => splunk-hec}/pom.xml (93%)
 copy extensions-jvm/{chatscript => splunk-hec}/runtime/pom.xml (90%)
 copy extensions-jvm/{apns => splunk-hec}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (87%)
 copy extensions-jvm/{atmos => splunk}/deployment/pom.xml (90%)
 copy extensions-jvm/{atomix/deployment/src/main/java/org/apache/camel/quarkus/component/atomix/deployment/AtomixProcessor.java => splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java} (88%)
 copy extensions-jvm/{hipchat => splunk}/integration-test/pom.xml (74%)
 copy extensions-jvm/{bonita/integration-test/src/main/java/org/apache/camel/quarkus/component/bonita/it/BonitaResource.java => splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java} (86%)
 copy extensions-jvm/{atom => splunk}/pom.xml (94%)
 copy extensions-jvm/{atomix => splunk}/runtime/pom.xml (92%)
 copy extensions-jvm/{apns => splunk}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)
 copy extensions-jvm/{apns => stax}/deployment/pom.xml (90%)
 copy extensions-jvm/{cmis/deployment/src/main/java/org/apache/camel/quarkus/component/cmis/deployment/CmisProcessor.java => stax/deployment/src/main/java/org/apache/camel/quarkus/component/stax/deployment/StaxProcessor.java} (89%)
 copy extensions-jvm/{dropbox => stax}/integration-test/pom.xml (74%)
 copy extensions-jvm/{cmis/integration-test/src/main/java/org/apache/camel/quarkus/component/cmis/it/CmisResource.java => stax/integration-test/src/main/java/org/apache/camel/quarkus/component/stax/it/StaxResource.java} (76%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => stax/integration-test/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxTest.java} (86%)
 copy extensions-jvm/{atom => stax}/pom.xml (94%)
 copy extensions-jvm/{flink => stax}/runtime/pom.xml (92%)
 copy extensions-jvm/{apns => stax}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (91%)
 copy extensions-jvm/{apns => stomp}/deployment/pom.xml (90%)
 copy extensions-jvm/{chunk/deployment/src/main/java/org/apache/camel/quarkus/component/chunk/deployment/ChunkProcessor.java => stomp/deployment/src/main/java/org/apache/camel/quarkus/component/stomp/deployment/StompProcessor.java} (88%)
 copy extensions-jvm/{dropbox => stomp}/integration-test/pom.xml (75%)
 copy extensions-jvm/{atmos/integration-test/src/main/java/org/apache/camel/quarkus/component/atmos/it/AtmosResource.java => stomp/integration-test/src/main/java/org/apache/camel/quarkus/component/stomp/it/StompResource.java} (75%)
 copy extensions-jvm/{avro-rpc/integration-test/src/test/java/org/apache/camel/quarkus/component/avro/it/AvroTest.java => stomp/integration-test/src/test/java/org/apache/camel/quarkus/component/stomp/it/StompTest.java} (86%)
 copy extensions-jvm/{atom => stomp}/pom.xml (94%)
 copy extensions-jvm/{flink => stomp}/runtime/pom.xml (90%)
 copy extensions-jvm/{apns => stomp}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (86%)
 copy extensions-jvm/{guava-eventbus => stringtemplate}/deployment/pom.xml (89%)
 copy extensions-jvm/{guava-eventbus/deployment/src/main/java/org/apache/camel/quarkus/component/guava/eventbus/deployment/GuavaEventbusProcessor.java => stringtemplate/deployment/src/main/java/org/apache/camel/quarkus/component/stringtemplate/deployment/StringtemplateProcessor.java} (86%)
 copy extensions-jvm/{hipchat => stringtemplate}/integration-test/pom.xml (74%)
 copy extensions-jvm/{atmos/integration-test/src/main/java/org/apache/camel/quarkus/component/atmos/it/AtmosResource.java => stringtemplate/integration-test/src/main/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateResource.java} (68%)
 copy extensions-jvm/{apns/integration-test/src/test/java/org/apache/camel/quarkus/component/apns/it/ApnsTest.java => stringtemplate/integration-test/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateTest.java} (83%)
 copy extensions-jvm/{guava-eventbus => stringtemplate}/pom.xml (93%)
 copy extensions-jvm/{irc => stringtemplate}/runtime/pom.xml (91%)
 copy extensions-jvm/{apns => stringtemplate}/runtime/src/main/resources/META-INF/quarkus-extension.yaml (89%)


[camel-quarkus] 01/05: String Template 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 4d4e9f37d52aa76c574954dbae92fa624c91c2db
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:25:03 2020 +0200

    String Template JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../pages/reference/extensions/stringtemplate.adoc |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/stringtemplate/deployment/pom.xml   |  63 +++++++++++++
 .../deployment/StringtemplateProcessor.java        |  46 ++++++++++
 .../stringtemplate/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../stringtemplate/it/StringtemplateResource.java  |  51 +++++++++++
 .../stringtemplate/it/StringtemplateTest.java      |  34 +++++++
 extensions-jvm/stringtemplate/pom.xml              |  40 +++++++++
 extensions-jvm/stringtemplate/runtime/pom.xml      |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 3078659..ee93a25 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2662,6 +2662,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stringtemplate</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-stub</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index d2ba977..0a76964 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -215,6 +215,7 @@
 *** xref:reference/extensions/soap.adoc[SOAP]
 *** xref:reference/extensions/sql.adoc[SQL]
 *** xref:reference/extensions/stream.adoc[Stream]
+*** xref:reference/extensions/stringtemplate.adoc[String Template]
 *** xref:reference/extensions/stub.adoc[Stub]
 *** xref:reference/extensions/tarfile.adoc[Tar File]
 *** xref:reference/extensions/telegram.adoc[Telegram]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 5174302..f745115 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -685,6 +685,9 @@ Stable | 1.0.0 | Perform SQL queries as a JDBC Stored Procedures using Spring JD
 | xref:reference/extensions/stream.adoc[Stream] | [.camel-element-artifact]##camel-quarkus-stream## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Read from system-in and write to system-out and system-err streams.
 
+| xref:reference/extensions/stringtemplate.adoc[String Template] | [.camel-element-artifact]##camel-quarkus-stringtemplate## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using StringTemplate engine.
+
 | xref:reference/extensions/stub.adoc[Stub] | [.camel-element-artifact]##camel-quarkus-stub## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Stub out any physical endpoints while in development or testing.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/stringtemplate.adoc b/docs/modules/ROOT/pages/reference/extensions/stringtemplate.adoc
new file mode 100644
index 0000000..1d912fc
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/stringtemplate.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[stringtemplate]]
+= String Template
+:page-aliases: extensions/stringtemplate.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Transform messages using StringTemplate engine.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/string-template-component.html[String Template component], URI syntax: `string-template: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-stringtemplate</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 48dc185..11de268 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -623,6 +623,9 @@ Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 |  xref:reference/extensions/stream.adoc[Stream]  | camel-quarkus-stream | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Read from system-in and write to system-out and system-err streams.
 
+|  xref:reference/extensions/stringtemplate.adoc[String Template]  | camel-quarkus-stringtemplate | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Transform messages using StringTemplate engine.
+
 |  xref:reference/extensions/stub.adoc[Stub]  | camel-quarkus-stub | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Stub out any physical endpoints while in development or testing.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 0b4a4ee..5a42562 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -95,6 +95,7 @@
         <module>protobuf</module>
         <module>pubnub</module>
         <module>pulsar</module>
+        <module>stringtemplate</module>
         <module>stub</module>
         <module>thrift</module>
         <module>twilio</module>
diff --git a/extensions-jvm/stringtemplate/deployment/pom.xml b/extensions-jvm/stringtemplate/deployment/pom.xml
new file mode 100644
index 0000000..d36496e
--- /dev/null
+++ b/extensions-jvm/stringtemplate/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-stringtemplate-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stringtemplate-deployment</artifactId>
+    <name>Camel Quarkus :: String Template :: 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-stringtemplate</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/stringtemplate/deployment/src/main/java/org/apache/camel/quarkus/component/stringtemplate/deployment/StringtemplateProcessor.java b/extensions-jvm/stringtemplate/deployment/src/main/java/org/apache/camel/quarkus/component/stringtemplate/deployment/StringtemplateProcessor.java
new file mode 100644
index 0000000..bd32a09
--- /dev/null
+++ b/extensions-jvm/stringtemplate/deployment/src/main/java/org/apache/camel/quarkus/component/stringtemplate/deployment/StringtemplateProcessor.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.stringtemplate.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 StringtemplateProcessor {
+
+    private static final Logger LOG = Logger.getLogger(StringtemplateProcessor.class);
+    private static final String FEATURE = "camel-stringtemplate";
+
+    @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/stringtemplate/integration-test/pom.xml b/extensions-jvm/stringtemplate/integration-test/pom.xml
new file mode 100644
index 0000000..d6622d1
--- /dev/null
+++ b/extensions-jvm/stringtemplate/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-stringtemplate-integration-test</artifactId>
+    <name>Camel Quarkus :: String Template :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus String Template 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-stringtemplate</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 runing `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stringtemplate-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/stringtemplate/integration-test/src/main/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateResource.java b/extensions-jvm/stringtemplate/integration-test/src/main/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateResource.java
new file mode 100644
index 0000000..1a4599c
--- /dev/null
+++ b/extensions-jvm/stringtemplate/integration-test/src/main/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateResource.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.stringtemplate.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("/stringtemplate")
+@ApplicationScoped
+public class StringtemplateResource {
+
+    private static final Logger LOG = Logger.getLogger(StringtemplateResource.class);
+
+    private static final String COMPONENT_STRING_TEMPLATE = "string-template";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/string-template")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentStringTemplate() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_STRING_TEMPLATE) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_STRING_TEMPLATE);
+        return Response.status(500, COMPONENT_STRING_TEMPLATE + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/stringtemplate/integration-test/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateTest.java b/extensions-jvm/stringtemplate/integration-test/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateTest.java
new file mode 100644
index 0000000..72b8a1a
--- /dev/null
+++ b/extensions-jvm/stringtemplate/integration-test/src/test/java/org/apache/camel/quarkus/component/stringtemplate/it/StringtemplateTest.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.stringtemplate.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class StringtemplateTest {
+
+    @Test
+    public void loadComponentStringTemplate() {
+        /* A simple autogenerated test */
+        RestAssured.get("/stringtemplate/load/component/string-template")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/stringtemplate/pom.xml b/extensions-jvm/stringtemplate/pom.xml
new file mode 100644
index 0000000..261a6ae
--- /dev/null
+++ b/extensions-jvm/stringtemplate/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-stringtemplate-parent</artifactId>
+    <name>Camel Quarkus :: String Template</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/stringtemplate/runtime/pom.xml b/extensions-jvm/stringtemplate/runtime/pom.xml
new file mode 100644
index 0000000..5d360e1
--- /dev/null
+++ b/extensions-jvm/stringtemplate/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-stringtemplate-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stringtemplate</artifactId>
+    <name>Camel Quarkus :: String Template :: Runtime</name>
+    <description>Transform messages using StringTemplate engine.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-stringtemplate</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/stringtemplate/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/stringtemplate/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..f11ea09
--- /dev/null
+++ b/extensions-jvm/stringtemplate/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 String Template"
+description: "Transform messages using StringTemplate engine"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/stringtemplate.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 94773ef..ce428b2 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1438,6 +1438,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-stringtemplate</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-stub</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3660,6 +3665,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stringtemplate</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stringtemplate-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-stub</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/05: Stomp 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 3789b8e01b815cc6cd13cb56eff804218b6e0c18
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:35:35 2020 +0200

    Stomp JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/stomp.adoc     |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/stomp/deployment/pom.xml            |  63 +++++++++++++
 .../component/stomp/deployment/StompProcessor.java |  46 ++++++++++
 extensions-jvm/stomp/integration-test/pom.xml      | 100 +++++++++++++++++++++
 .../quarkus/component/stomp/it/StompResource.java  |  51 +++++++++++
 .../quarkus/component/stomp/it/StompTest.java      |  34 +++++++
 extensions-jvm/stomp/pom.xml                       |  40 +++++++++
 extensions-jvm/stomp/runtime/pom.xml               |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index ee93a25..f2fced8 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2649,6 +2649,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stomp</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-stream</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 0a76964..a9e8cff 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -214,6 +214,7 @@
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
 *** xref:reference/extensions/soap.adoc[SOAP]
 *** xref:reference/extensions/sql.adoc[SQL]
+*** xref:reference/extensions/stomp.adoc[Stomp]
 *** xref:reference/extensions/stream.adoc[Stream]
 *** xref:reference/extensions/stringtemplate.adoc[String Template]
 *** xref:reference/extensions/stub.adoc[Stub]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index f745115..3f800ec 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -682,6 +682,9 @@ Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 | xref:reference/extensions/sql.adoc[SQL Stored Procedure] | [.camel-element-artifact]##camel-quarkus-sql## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries as a JDBC Stored Procedures using Spring JDBC.
 
+| xref:reference/extensions/stomp.adoc[Stomp] | [.camel-element-artifact]##camel-quarkus-stomp## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
+
 | xref:reference/extensions/stream.adoc[Stream] | [.camel-element-artifact]##camel-quarkus-stream## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Read from system-in and write to system-out and system-err streams.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/stomp.adoc b/docs/modules/ROOT/pages/reference/extensions/stomp.adoc
new file mode 100644
index 0000000..8a0b15e
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/stomp.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[stomp]]
+= Stomp
+:page-aliases: extensions/stomp.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/stomp-component.html[Stomp component], URI syntax: `stomp:destination`
+
+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-stomp</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 11de268..de5ad8a 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -620,6 +620,9 @@ Stable | 1.0.0 | Marshal Java objects to SOAP messages and back.
 |  xref:reference/extensions/sql.adoc[SQL]  | camel-quarkus-sql | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 
+|  xref:reference/extensions/stomp.adoc[Stomp]  | camel-quarkus-stomp | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
+
 |  xref:reference/extensions/stream.adoc[Stream]  | camel-quarkus-stream | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Read from system-in and write to system-out and system-err streams.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 5a42562..fedb271 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -95,6 +95,7 @@
         <module>protobuf</module>
         <module>pubnub</module>
         <module>pulsar</module>
+        <module>stomp</module>
         <module>stringtemplate</module>
         <module>stub</module>
         <module>thrift</module>
diff --git a/extensions-jvm/stomp/deployment/pom.xml b/extensions-jvm/stomp/deployment/pom.xml
new file mode 100644
index 0000000..ff0ff27
--- /dev/null
+++ b/extensions-jvm/stomp/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-stomp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stomp-deployment</artifactId>
+    <name>Camel Quarkus :: Stomp :: 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-stomp</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/stomp/deployment/src/main/java/org/apache/camel/quarkus/component/stomp/deployment/StompProcessor.java b/extensions-jvm/stomp/deployment/src/main/java/org/apache/camel/quarkus/component/stomp/deployment/StompProcessor.java
new file mode 100644
index 0000000..de07779
--- /dev/null
+++ b/extensions-jvm/stomp/deployment/src/main/java/org/apache/camel/quarkus/component/stomp/deployment/StompProcessor.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.stomp.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 StompProcessor {
+
+    private static final Logger LOG = Logger.getLogger(StompProcessor.class);
+    private static final String FEATURE = "camel-stomp";
+
+    @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/stomp/integration-test/pom.xml b/extensions-jvm/stomp/integration-test/pom.xml
new file mode 100644
index 0000000..4fe1e2c
--- /dev/null
+++ b/extensions-jvm/stomp/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-stomp-integration-test</artifactId>
+    <name>Camel Quarkus :: Stomp :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Stomp 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-stomp</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 runing `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stomp-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/stomp/integration-test/src/main/java/org/apache/camel/quarkus/component/stomp/it/StompResource.java b/extensions-jvm/stomp/integration-test/src/main/java/org/apache/camel/quarkus/component/stomp/it/StompResource.java
new file mode 100644
index 0000000..044b20d
--- /dev/null
+++ b/extensions-jvm/stomp/integration-test/src/main/java/org/apache/camel/quarkus/component/stomp/it/StompResource.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.stomp.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("/stomp")
+@ApplicationScoped
+public class StompResource {
+
+    private static final Logger LOG = Logger.getLogger(StompResource.class);
+
+    private static final String COMPONENT_STOMP = "stomp";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/stomp")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentStomp() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_STOMP) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_STOMP);
+        return Response.status(500, COMPONENT_STOMP + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/stomp/integration-test/src/test/java/org/apache/camel/quarkus/component/stomp/it/StompTest.java b/extensions-jvm/stomp/integration-test/src/test/java/org/apache/camel/quarkus/component/stomp/it/StompTest.java
new file mode 100644
index 0000000..d995fdf
--- /dev/null
+++ b/extensions-jvm/stomp/integration-test/src/test/java/org/apache/camel/quarkus/component/stomp/it/StompTest.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.stomp.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class StompTest {
+
+    @Test
+    public void loadComponentStomp() {
+        /* A simple autogenerated test */
+        RestAssured.get("/stomp/load/component/stomp")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/stomp/pom.xml b/extensions-jvm/stomp/pom.xml
new file mode 100644
index 0000000..9f8abf5
--- /dev/null
+++ b/extensions-jvm/stomp/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-stomp-parent</artifactId>
+    <name>Camel Quarkus :: Stomp</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/stomp/runtime/pom.xml b/extensions-jvm/stomp/runtime/pom.xml
new file mode 100644
index 0000000..bacca3f
--- /dev/null
+++ b/extensions-jvm/stomp/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-stomp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stomp</artifactId>
+    <name>Camel Quarkus :: Stomp :: Runtime</name>
+    <description>Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.</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-stomp</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/stomp/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/stomp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..45c646b
--- /dev/null
+++ b/extensions-jvm/stomp/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 Stomp"
+description: "Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/stomp.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index ce428b2..cde486e 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1433,6 +1433,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-stomp</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-stream</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3655,6 +3660,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stomp</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stomp-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-stream</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 03/05: StAX 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 32f68dfe1b04f3a31677b68a791393ce71555c97
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:37:11 2020 +0200

    StAX JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/stax.adoc      |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/stax/deployment/pom.xml             |  63 +++++++++++++
 .../component/stax/deployment/StaxProcessor.java   |  46 ++++++++++
 extensions-jvm/stax/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/stax/it/StaxResource.java    |  51 +++++++++++
 .../camel/quarkus/component/stax/it/StaxTest.java  |  34 +++++++
 extensions-jvm/stax/pom.xml                        |  40 +++++++++
 extensions-jvm/stax/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index f2fced8..a7f4508 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2649,6 +2649,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stax</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-stomp</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index a9e8cff..214dfd5 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -214,6 +214,7 @@
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
 *** xref:reference/extensions/soap.adoc[SOAP]
 *** xref:reference/extensions/sql.adoc[SQL]
+*** xref:reference/extensions/stax.adoc[StAX]
 *** xref:reference/extensions/stomp.adoc[Stomp]
 *** xref:reference/extensions/stream.adoc[Stream]
 *** xref:reference/extensions/stringtemplate.adoc[String Template]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 3f800ec..72c169d 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -682,6 +682,9 @@ Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 | xref:reference/extensions/sql.adoc[SQL Stored Procedure] | [.camel-element-artifact]##camel-quarkus-sql## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries as a JDBC Stored Procedures using Spring JDBC.
 
+| xref:reference/extensions/stax.adoc[StAX] | [.camel-element-artifact]##camel-quarkus-stax## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Process XML payloads by a SAX ContentHandler.
+
 | xref:reference/extensions/stomp.adoc[Stomp] | [.camel-element-artifact]##camel-quarkus-stomp## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/stax.adoc b/docs/modules/ROOT/pages/reference/extensions/stax.adoc
new file mode 100644
index 0000000..7da8eb6
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/stax.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[stax]]
+= StAX
+:page-aliases: extensions/stax.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Process XML payloads by a SAX ContentHandler.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/stax-component.html[StAX component], URI syntax: `stax:contentHandlerClass`
+
+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-stax</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 de5ad8a..54d9ac8 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -620,6 +620,9 @@ Stable | 1.0.0 | Marshal Java objects to SOAP messages and back.
 |  xref:reference/extensions/sql.adoc[SQL]  | camel-quarkus-sql | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 
+|  xref:reference/extensions/stax.adoc[StAX]  | camel-quarkus-stax | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Process XML payloads by a SAX ContentHandler.
+
 |  xref:reference/extensions/stomp.adoc[Stomp]  | camel-quarkus-stomp | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index fedb271..fa95f0e 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -95,6 +95,7 @@
         <module>protobuf</module>
         <module>pubnub</module>
         <module>pulsar</module>
+        <module>stax</module>
         <module>stomp</module>
         <module>stringtemplate</module>
         <module>stub</module>
diff --git a/extensions-jvm/stax/deployment/pom.xml b/extensions-jvm/stax/deployment/pom.xml
new file mode 100644
index 0000000..8a87664
--- /dev/null
+++ b/extensions-jvm/stax/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-stax-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stax-deployment</artifactId>
+    <name>Camel Quarkus :: StAX :: 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-stax</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/stax/deployment/src/main/java/org/apache/camel/quarkus/component/stax/deployment/StaxProcessor.java b/extensions-jvm/stax/deployment/src/main/java/org/apache/camel/quarkus/component/stax/deployment/StaxProcessor.java
new file mode 100644
index 0000000..4e656a8
--- /dev/null
+++ b/extensions-jvm/stax/deployment/src/main/java/org/apache/camel/quarkus/component/stax/deployment/StaxProcessor.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.stax.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 StaxProcessor {
+
+    private static final Logger LOG = Logger.getLogger(StaxProcessor.class);
+    private static final String FEATURE = "camel-stax";
+
+    @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/stax/integration-test/pom.xml b/extensions-jvm/stax/integration-test/pom.xml
new file mode 100644
index 0000000..f992de0
--- /dev/null
+++ b/extensions-jvm/stax/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-stax-integration-test</artifactId>
+    <name>Camel Quarkus :: StAX :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus StAX 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-stax</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 runing `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-stax-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/stax/integration-test/src/main/java/org/apache/camel/quarkus/component/stax/it/StaxResource.java b/extensions-jvm/stax/integration-test/src/main/java/org/apache/camel/quarkus/component/stax/it/StaxResource.java
new file mode 100644
index 0000000..7ebb9f0
--- /dev/null
+++ b/extensions-jvm/stax/integration-test/src/main/java/org/apache/camel/quarkus/component/stax/it/StaxResource.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.stax.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("/stax")
+@ApplicationScoped
+public class StaxResource {
+
+    private static final Logger LOG = Logger.getLogger(StaxResource.class);
+
+    private static final String COMPONENT_STAX = "stax";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/stax")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentStax() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_STAX) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_STAX);
+        return Response.status(500, COMPONENT_STAX + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/stax/integration-test/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxTest.java b/extensions-jvm/stax/integration-test/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxTest.java
new file mode 100644
index 0000000..f7dfacb
--- /dev/null
+++ b/extensions-jvm/stax/integration-test/src/test/java/org/apache/camel/quarkus/component/stax/it/StaxTest.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.stax.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class StaxTest {
+
+    @Test
+    public void loadComponentStax() {
+        /* A simple autogenerated test */
+        RestAssured.get("/stax/load/component/stax")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/stax/pom.xml b/extensions-jvm/stax/pom.xml
new file mode 100644
index 0000000..3a74aeb
--- /dev/null
+++ b/extensions-jvm/stax/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-stax-parent</artifactId>
+    <name>Camel Quarkus :: StAX</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/stax/runtime/pom.xml b/extensions-jvm/stax/runtime/pom.xml
new file mode 100644
index 0000000..6df5865
--- /dev/null
+++ b/extensions-jvm/stax/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-stax-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-stax</artifactId>
+    <name>Camel Quarkus :: StAX :: Runtime</name>
+    <description>Process XML payloads by a SAX ContentHandler.</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-stax</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/stax/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/stax/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..389ea5d
--- /dev/null
+++ b/extensions-jvm/stax/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 StAX"
+description: "Process XML payloads by a SAX ContentHandler"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/stax.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index cde486e..0c77688 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1433,6 +1433,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-stax</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-stomp</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3660,6 +3665,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stax</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-stax-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-stomp</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 05/05: Splunk 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 41ded5aeeeb26653ba78bc6e38d174a6d39a962a
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:42:13 2020 +0200

    Splunk JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/splunk.adoc    |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/splunk/deployment/pom.xml           |  63 +++++++++++++
 .../splunk/deployment/SplunkProcessor.java         |  46 ++++++++++
 extensions-jvm/splunk/integration-test/pom.xml     | 100 +++++++++++++++++++++
 .../component/splunk/it/SplunkResource.java        |  51 +++++++++++
 .../quarkus/component/splunk/it/SplunkTest.java    |  34 +++++++
 extensions-jvm/splunk/pom.xml                      |  40 +++++++++
 extensions-jvm/splunk/runtime/pom.xml              |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index bde751c..05bab9c 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2636,6 +2636,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-splunk</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-splunk-hec</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 4d0810e..c5260d4 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -213,6 +213,7 @@
 *** xref:reference/extensions/slack.adoc[Slack]
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
 *** xref:reference/extensions/soap.adoc[SOAP]
+*** xref:reference/extensions/splunk.adoc[Splunk]
 *** xref:reference/extensions/splunk-hec.adoc[Splunk HEC]
 *** xref:reference/extensions/sql.adoc[SQL]
 *** xref:reference/extensions/stax.adoc[StAX]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index cb55a95..972b5d4 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -676,6 +676,9 @@ Stable | 1.0.0 | Send and receive messages to/from a JMS Queue or Topic using pl
 | xref:reference/extensions/slack.adoc[Slack] | [.camel-element-artifact]##camel-quarkus-slack## | [.camel-element-Native]##Native## +
 Stable | 0.3.0 | Send and receive messages to/from Slack.
 
+| xref:reference/extensions/splunk.adoc[Splunk] | [.camel-element-artifact]##camel-quarkus-splunk## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Publish or search for events in Splunk.
+
 | xref:reference/extensions/splunk-hec.adoc[Splunk HEC] | [.camel-element-artifact]##camel-quarkus-splunk-hec## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | The splunk component allows to publish events in Splunk using the HTTP Event Collector.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/splunk.adoc b/docs/modules/ROOT/pages/reference/extensions/splunk.adoc
new file mode 100644
index 0000000..c252106
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/splunk.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[splunk]]
+= Splunk
+:page-aliases: extensions/splunk.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Publish or search for events in Splunk.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/splunk-component.html[Splunk component], URI syntax: `splunk:name`
+
+Please refer to the above link for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-splunk</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 aaa2fff..61d654e 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -617,6 +617,9 @@ Stable | 1.0.0 | Camel integration with SmallRye Reactive Messaging
 |  xref:reference/extensions/soap.adoc[SOAP]  | camel-quarkus-soap | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Marshal Java objects to SOAP messages and back.
 
+|  xref:reference/extensions/splunk.adoc[Splunk]  | camel-quarkus-splunk | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Publish or search for events in Splunk.
+
 |  xref:reference/extensions/splunk-hec.adoc[Splunk HEC]  | camel-quarkus-splunk-hec | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | The splunk component allows to publish events in Splunk using the HTTP Event Collector.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 0894d3f..aa4de94 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -95,6 +95,7 @@
         <module>protobuf</module>
         <module>pubnub</module>
         <module>pulsar</module>
+        <module>splunk</module>
         <module>splunk-hec</module>
         <module>stax</module>
         <module>stomp</module>
diff --git a/extensions-jvm/splunk/deployment/pom.xml b/extensions-jvm/splunk/deployment/pom.xml
new file mode 100644
index 0000000..ae706dc
--- /dev/null
+++ b/extensions-jvm/splunk/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-splunk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-splunk-deployment</artifactId>
+    <name>Camel Quarkus :: Splunk :: 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-splunk</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/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java b/extensions-jvm/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.java
new file mode 100644
index 0000000..2d0ae75
--- /dev/null
+++ b/extensions-jvm/splunk/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/deployment/SplunkProcessor.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.splunk.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 SplunkProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SplunkProcessor.class);
+    private static final String FEATURE = "camel-splunk";
+
+    @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/splunk/integration-test/pom.xml b/extensions-jvm/splunk/integration-test/pom.xml
new file mode 100644
index 0000000..45ea010
--- /dev/null
+++ b/extensions-jvm/splunk/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-splunk-integration-test</artifactId>
+    <name>Camel Quarkus :: Splunk :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Splunk 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-splunk</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 runing `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-splunk-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/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java b/extensions-jvm/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.java
new file mode 100644
index 0000000..55b4cfe
--- /dev/null
+++ b/extensions-jvm/splunk/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/it/SplunkResource.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.splunk.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("/splunk")
+@ApplicationScoped
+public class SplunkResource {
+
+    private static final Logger LOG = Logger.getLogger(SplunkResource.class);
+
+    private static final String COMPONENT_SPLUNK = "splunk";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/splunk")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSplunk() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SPLUNK) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SPLUNK);
+        return Response.status(500, COMPONENT_SPLUNK + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java b/extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.java
new file mode 100644
index 0000000..57ddf6d
--- /dev/null
+++ b/extensions-jvm/splunk/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/it/SplunkTest.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.splunk.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SplunkTest {
+
+    @Test
+    public void loadComponentSplunk() {
+        /* A simple autogenerated test */
+        RestAssured.get("/splunk/load/component/splunk")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/splunk/pom.xml b/extensions-jvm/splunk/pom.xml
new file mode 100644
index 0000000..938644d
--- /dev/null
+++ b/extensions-jvm/splunk/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-splunk-parent</artifactId>
+    <name>Camel Quarkus :: Splunk</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/splunk/runtime/pom.xml b/extensions-jvm/splunk/runtime/pom.xml
new file mode 100644
index 0000000..0fd5217
--- /dev/null
+++ b/extensions-jvm/splunk/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-splunk-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-splunk</artifactId>
+    <name>Camel Quarkus :: Splunk :: Runtime</name>
+    <description>Publish or search for events in Splunk.</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-splunk</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/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/splunk/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..de4224a
--- /dev/null
+++ b/extensions-jvm/splunk/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 Splunk"
+description: "Publish or search for events in Splunk"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/splunk.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 1e286ed..2b5160a 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1422,6 +1422,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-splunk</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-splunk-hec</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3660,6 +3665,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-splunk</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-splunk-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-splunk-hec</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 04/05: Splunk HEC 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 2b96c00f0761b3b6015cc5070ddd0e3112ba3dfc
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:40:43 2020 +0200

    Splunk HEC JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../pages/reference/extensions/splunk-hec.adoc     |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/splunk-hec/deployment/pom.xml       |  63 +++++++++++++
 .../splunk/hec/deployment/SplunkHecProcessor.java  |  46 ++++++++++
 extensions-jvm/splunk-hec/integration-test/pom.xml | 100 +++++++++++++++++++++
 .../component/splunk/hec/it/SplunkHecResource.java |  51 +++++++++++
 .../component/splunk/hec/it/SplunkHecTest.java     |  34 +++++++
 extensions-jvm/splunk-hec/pom.xml                  |  40 +++++++++
 extensions-jvm/splunk-hec/runtime/pom.xml          |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 525 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index a7f4508..bde751c 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2636,6 +2636,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-splunk-hec</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-sql</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 214dfd5..4d0810e 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -213,6 +213,7 @@
 *** xref:reference/extensions/slack.adoc[Slack]
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
 *** xref:reference/extensions/soap.adoc[SOAP]
+*** xref:reference/extensions/splunk-hec.adoc[Splunk HEC]
 *** xref:reference/extensions/sql.adoc[SQL]
 *** xref:reference/extensions/stax.adoc[StAX]
 *** xref:reference/extensions/stomp.adoc[Stomp]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 72c169d..cb55a95 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -676,6 +676,9 @@ Stable | 1.0.0 | Send and receive messages to/from a JMS Queue or Topic using pl
 | xref:reference/extensions/slack.adoc[Slack] | [.camel-element-artifact]##camel-quarkus-slack## | [.camel-element-Native]##Native## +
 Stable | 0.3.0 | Send and receive messages to/from Slack.
 
+| xref:reference/extensions/splunk-hec.adoc[Splunk HEC] | [.camel-element-artifact]##camel-quarkus-splunk-hec## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | The splunk component allows to publish events in Splunk using the HTTP Event Collector.
+
 | xref:reference/extensions/sql.adoc[SQL] | [.camel-element-artifact]##camel-quarkus-sql## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/splunk-hec.adoc b/docs/modules/ROOT/pages/reference/extensions/splunk-hec.adoc
new file mode 100644
index 0000000..22c5696
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/splunk-hec.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[splunk-hec]]
+= Splunk HEC
+:page-aliases: extensions/splunk-hec.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+The splunk component allows to publish events in Splunk using the HTTP Event Collector.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/splunk-hec-component.html[Splunk HEC component], URI syntax: `splunk-hec:splunkURL/token`
+
+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-splunk-hec</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 54d9ac8..aaa2fff 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -617,6 +617,9 @@ Stable | 1.0.0 | Camel integration with SmallRye Reactive Messaging
 |  xref:reference/extensions/soap.adoc[SOAP]  | camel-quarkus-soap | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Marshal Java objects to SOAP messages and back.
 
+|  xref:reference/extensions/splunk-hec.adoc[Splunk HEC]  | camel-quarkus-splunk-hec | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | The splunk component allows to publish events in Splunk using the HTTP Event Collector.
+
 |  xref:reference/extensions/sql.adoc[SQL]  | camel-quarkus-sql | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Perform SQL queries using Spring JDBC.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index fa95f0e..0894d3f 100644
--- a/extensions-jvm/pom.xml
+++ b/extensions-jvm/pom.xml
@@ -95,6 +95,7 @@
         <module>protobuf</module>
         <module>pubnub</module>
         <module>pulsar</module>
+        <module>splunk-hec</module>
         <module>stax</module>
         <module>stomp</module>
         <module>stringtemplate</module>
diff --git a/extensions-jvm/splunk-hec/deployment/pom.xml b/extensions-jvm/splunk-hec/deployment/pom.xml
new file mode 100644
index 0000000..7cf553f
--- /dev/null
+++ b/extensions-jvm/splunk-hec/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-splunk-hec-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-splunk-hec-deployment</artifactId>
+    <name>Camel Quarkus :: Splunk HEC :: 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-splunk-hec</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/splunk-hec/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/hec/deployment/SplunkHecProcessor.java b/extensions-jvm/splunk-hec/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/hec/deployment/SplunkHecProcessor.java
new file mode 100644
index 0000000..ada0a08
--- /dev/null
+++ b/extensions-jvm/splunk-hec/deployment/src/main/java/org/apache/camel/quarkus/component/splunk/hec/deployment/SplunkHecProcessor.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.splunk.hec.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 SplunkHecProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SplunkHecProcessor.class);
+    private static final String FEATURE = "camel-splunk-hec";
+
+    @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/splunk-hec/integration-test/pom.xml b/extensions-jvm/splunk-hec/integration-test/pom.xml
new file mode 100644
index 0000000..d58ae21
--- /dev/null
+++ b/extensions-jvm/splunk-hec/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-splunk-hec-integration-test</artifactId>
+    <name>Camel Quarkus :: Splunk HEC :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Splunk HEC 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-splunk-hec</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 runing `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-splunk-hec-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/splunk-hec/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecResource.java b/extensions-jvm/splunk-hec/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecResource.java
new file mode 100644
index 0000000..1ba7b83
--- /dev/null
+++ b/extensions-jvm/splunk-hec/integration-test/src/main/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecResource.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.splunk.hec.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("/splunk-hec")
+@ApplicationScoped
+public class SplunkHecResource {
+
+    private static final Logger LOG = Logger.getLogger(SplunkHecResource.class);
+
+    private static final String COMPONENT_SPLUNK_HEC = "splunk-hec";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/splunk-hec")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSplunkHec() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SPLUNK_HEC) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SPLUNK_HEC);
+        return Response.status(500, COMPONENT_SPLUNK_HEC + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/splunk-hec/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecTest.java b/extensions-jvm/splunk-hec/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecTest.java
new file mode 100644
index 0000000..d7226a2
--- /dev/null
+++ b/extensions-jvm/splunk-hec/integration-test/src/test/java/org/apache/camel/quarkus/component/splunk/hec/it/SplunkHecTest.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.splunk.hec.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SplunkHecTest {
+
+    @Test
+    public void loadComponentSplunkHec() {
+        /* A simple autogenerated test */
+        RestAssured.get("/splunk-hec/load/component/splunk-hec")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/splunk-hec/pom.xml b/extensions-jvm/splunk-hec/pom.xml
new file mode 100644
index 0000000..4a1fb93
--- /dev/null
+++ b/extensions-jvm/splunk-hec/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-splunk-hec-parent</artifactId>
+    <name>Camel Quarkus :: Splunk HEC</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/splunk-hec/runtime/pom.xml b/extensions-jvm/splunk-hec/runtime/pom.xml
new file mode 100644
index 0000000..99e77ca
--- /dev/null
+++ b/extensions-jvm/splunk-hec/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-splunk-hec-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-splunk-hec</artifactId>
+    <name>Camel Quarkus :: Splunk HEC :: Runtime</name>
+    <description>The splunk component allows to publish events in Splunk using the HTTP Event Collector.</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-splunk-hec</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/splunk-hec/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/splunk-hec/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..4f76eb8
--- /dev/null
+++ b/extensions-jvm/splunk-hec/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 Splunk HEC"
+description: "The splunk component allows to publish events in Splunk using the HTTP Event Collector"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/splunk-hec.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 0c77688..1e286ed 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1422,6 +1422,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-splunk-hec</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-sql</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
@@ -3655,6 +3660,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-splunk-hec</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-splunk-hec-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-sql</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>