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 12:18:55 UTC

[camel-quarkus] branch master updated (348a84f -> d461074)

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 348a84f  Upgrade to cq-maven-plugin 0.18.1
     new dfb580b  Soroush JVM support
     new 8a4f6f9  Solr JVM support
     new cabada6  SNMP JVM support
     new 88e4645  SMPP JVM support
     new ad07eba  SIP JVM support
     new d461074  Schematron JVM support

The 6 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                                    |  78 ++++++++++++++++
 docs/modules/ROOT/nav.adoc                         |   6 ++
 docs/modules/ROOT/pages/reference/components.adoc  |  18 ++++
 .../pages/reference/extensions/schematron.adoc     |  29 ++++++
 .../ROOT/pages/reference/extensions/sip.adoc       |  30 +++++++
 .../ROOT/pages/reference/extensions/smpp.adoc      |  30 +++++++
 .../ROOT/pages/reference/extensions/snmp.adoc      |  29 ++++++
 .../ROOT/pages/reference/extensions/solr.adoc      |  31 +++++++
 .../ROOT/pages/reference/extensions/soroush.adoc   |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |  18 ++++
 extensions-jvm/pom.xml                             |   6 ++
 extensions-jvm/schematron/deployment/pom.xml       |  63 +++++++++++++
 .../schematron/deployment/SchematronProcessor.java |  46 ++++++++++
 extensions-jvm/schematron/integration-test/pom.xml | 100 +++++++++++++++++++++
 .../schematron/it/SchematronResource.java          |  51 +++++++++++
 .../component/schematron/it/SchematronTest.java    |  34 +++++++
 extensions-jvm/schematron/pom.xml                  |  40 +++++++++
 extensions-jvm/schematron/runtime/pom.xml          |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/sip/deployment/pom.xml              |  63 +++++++++++++
 .../component/sip/deployment/SipProcessor.java     |  46 ++++++++++
 extensions-jvm/sip/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../quarkus/component/sip/it/SipResource.java      |  64 +++++++++++++
 .../camel/quarkus/component/sip/it/SipTest.java    |  42 +++++++++
 extensions-jvm/sip/pom.xml                         |  40 +++++++++
 extensions-jvm/sip/runtime/pom.xml                 |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/smpp/deployment/pom.xml             |  63 +++++++++++++
 .../component/smpp/deployment/SmppProcessor.java   |  46 ++++++++++
 extensions-jvm/smpp/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/smpp/it/SmppResource.java    |  64 +++++++++++++
 .../camel/quarkus/component/smpp/it/SmppTest.java  |  42 +++++++++
 extensions-jvm/smpp/pom.xml                        |  40 +++++++++
 extensions-jvm/smpp/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/snmp/deployment/pom.xml             |  63 +++++++++++++
 .../component/snmp/deployment/SnmpProcessor.java   |  46 ++++++++++
 extensions-jvm/snmp/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/snmp/it/SnmpResource.java    |  51 +++++++++++
 .../camel/quarkus/component/snmp/it/SnmpTest.java  |  34 +++++++
 extensions-jvm/snmp/pom.xml                        |  40 +++++++++
 extensions-jvm/snmp/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/solr/deployment/pom.xml             |  63 +++++++++++++
 .../component/solr/deployment/SolrProcessor.java   |  46 ++++++++++
 extensions-jvm/solr/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/solr/it/SolrResource.java    |  77 ++++++++++++++++
 .../camel/quarkus/component/solr/it/SolrTest.java  |  50 +++++++++++
 extensions-jvm/solr/pom.xml                        |  40 +++++++++
 extensions-jvm/solr/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 extensions-jvm/soroush/deployment/pom.xml          |  63 +++++++++++++
 .../soroush/deployment/SoroushProcessor.java       |  46 ++++++++++
 extensions-jvm/soroush/integration-test/pom.xml    | 100 +++++++++++++++++++++
 .../component/soroush/it/SoroushResource.java      |  51 +++++++++++
 .../quarkus/component/soroush/it/SoroushTest.java  |  34 +++++++
 extensions-jvm/soroush/pom.xml                     |  40 +++++++++
 extensions-jvm/soroush/runtime/pom.xml             |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 pom.xml                                            |   2 +-
 poms/bom/pom.xml                                   |  95 ++++++++++++++++++++
 61 files changed, 3244 insertions(+), 1 deletion(-)
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/schematron.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/sip.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/smpp.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/snmp.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/solr.adoc
 create mode 100644 docs/modules/ROOT/pages/reference/extensions/soroush.adoc
 create mode 100644 extensions-jvm/schematron/deployment/pom.xml
 create mode 100644 extensions-jvm/schematron/deployment/src/main/java/org/apache/camel/quarkus/component/schematron/deployment/SchematronProcessor.java
 create mode 100644 extensions-jvm/schematron/integration-test/pom.xml
 create mode 100644 extensions-jvm/schematron/integration-test/src/main/java/org/apache/camel/quarkus/component/schematron/it/SchematronResource.java
 create mode 100644 extensions-jvm/schematron/integration-test/src/test/java/org/apache/camel/quarkus/component/schematron/it/SchematronTest.java
 create mode 100644 extensions-jvm/schematron/pom.xml
 create mode 100644 extensions-jvm/schematron/runtime/pom.xml
 create mode 100644 extensions-jvm/schematron/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/sip/deployment/pom.xml
 create mode 100644 extensions-jvm/sip/deployment/src/main/java/org/apache/camel/quarkus/component/sip/deployment/SipProcessor.java
 create mode 100644 extensions-jvm/sip/integration-test/pom.xml
 create mode 100644 extensions-jvm/sip/integration-test/src/main/java/org/apache/camel/quarkus/component/sip/it/SipResource.java
 create mode 100644 extensions-jvm/sip/integration-test/src/test/java/org/apache/camel/quarkus/component/sip/it/SipTest.java
 create mode 100644 extensions-jvm/sip/pom.xml
 create mode 100644 extensions-jvm/sip/runtime/pom.xml
 create mode 100644 extensions-jvm/sip/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/smpp/deployment/pom.xml
 create mode 100644 extensions-jvm/smpp/deployment/src/main/java/org/apache/camel/quarkus/component/smpp/deployment/SmppProcessor.java
 create mode 100644 extensions-jvm/smpp/integration-test/pom.xml
 create mode 100644 extensions-jvm/smpp/integration-test/src/main/java/org/apache/camel/quarkus/component/smpp/it/SmppResource.java
 create mode 100644 extensions-jvm/smpp/integration-test/src/test/java/org/apache/camel/quarkus/component/smpp/it/SmppTest.java
 create mode 100644 extensions-jvm/smpp/pom.xml
 create mode 100644 extensions-jvm/smpp/runtime/pom.xml
 create mode 100644 extensions-jvm/smpp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/snmp/deployment/pom.xml
 create mode 100644 extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
 create mode 100644 extensions-jvm/snmp/integration-test/pom.xml
 create mode 100644 extensions-jvm/snmp/integration-test/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
 create mode 100644 extensions-jvm/snmp/integration-test/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
 create mode 100644 extensions-jvm/snmp/pom.xml
 create mode 100644 extensions-jvm/snmp/runtime/pom.xml
 create mode 100644 extensions-jvm/snmp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/solr/deployment/pom.xml
 create mode 100644 extensions-jvm/solr/deployment/src/main/java/org/apache/camel/quarkus/component/solr/deployment/SolrProcessor.java
 create mode 100644 extensions-jvm/solr/integration-test/pom.xml
 create mode 100644 extensions-jvm/solr/integration-test/src/main/java/org/apache/camel/quarkus/component/solr/it/SolrResource.java
 create mode 100644 extensions-jvm/solr/integration-test/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
 create mode 100644 extensions-jvm/solr/pom.xml
 create mode 100644 extensions-jvm/solr/runtime/pom.xml
 create mode 100644 extensions-jvm/solr/runtime/src/main/resources/META-INF/quarkus-extension.yaml
 create mode 100644 extensions-jvm/soroush/deployment/pom.xml
 create mode 100644 extensions-jvm/soroush/deployment/src/main/java/org/apache/camel/quarkus/component/soroush/deployment/SoroushProcessor.java
 create mode 100644 extensions-jvm/soroush/integration-test/pom.xml
 create mode 100644 extensions-jvm/soroush/integration-test/src/main/java/org/apache/camel/quarkus/component/soroush/it/SoroushResource.java
 create mode 100644 extensions-jvm/soroush/integration-test/src/test/java/org/apache/camel/quarkus/component/soroush/it/SoroushTest.java
 create mode 100644 extensions-jvm/soroush/pom.xml
 create mode 100644 extensions-jvm/soroush/runtime/pom.xml
 create mode 100644 extensions-jvm/soroush/runtime/src/main/resources/META-INF/quarkus-extension.yaml


[camel-quarkus] 03/06: SNMP 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 cabada6f4ed8d3f022b6f44a1b568c8b0340ba5f
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 13:24:40 2020 +0200

    SNMP JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/snmp.adoc      |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/snmp/deployment/pom.xml             |  63 +++++++++++++
 .../component/snmp/deployment/SnmpProcessor.java   |  46 ++++++++++
 extensions-jvm/snmp/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/snmp/it/SnmpResource.java    |  51 +++++++++++
 .../camel/quarkus/component/snmp/it/SnmpTest.java  |  34 +++++++
 extensions-jvm/snmp/pom.xml                        |  40 +++++++++
 extensions-jvm/snmp/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 23c9cb9..ef1b6b1 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2623,6 +2623,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-snmp</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-soap</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index f353708..a9d2160 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -212,6 +212,7 @@
 *** xref:reference/extensions/sjms2.adoc[Simple JMS2]
 *** xref:reference/extensions/slack.adoc[Slack]
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
+*** xref:reference/extensions/snmp.adoc[SNMP]
 *** xref:reference/extensions/soap.adoc[SOAP]
 *** xref:reference/extensions/solr.adoc[Solr]
 *** xref:reference/extensions/soroush.adoc[Soroush]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 7ff1e0f..720ed74 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/snmp.adoc[SNMP] | [.camel-element-artifact]##camel-quarkus-snmp## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
+
 | xref:reference/extensions/solr.adoc[Solr] | [.camel-element-artifact]##camel-quarkus-solr## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Perform operations against Apache Lucene Solr.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/snmp.adoc b/docs/modules/ROOT/pages/reference/extensions/snmp.adoc
new file mode 100644
index 0000000..74129f7
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/snmp.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[snmp]]
+= SNMP
+:page-aliases: extensions/snmp.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/snmp-component.html[SNMP component], URI syntax: `snmp:host:port`
+
+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-snmp</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 1498da1..ac6c037 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -614,6 +614,9 @@ Stable | 0.3.0 | Send and receive messages to/from Slack.
 |  xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]  | camel-quarkus-smallrye-reactive-messaging | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Camel integration with SmallRye Reactive Messaging
 
+|  xref:reference/extensions/snmp.adoc[SNMP]  | camel-quarkus-snmp | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
+
 |  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.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 4155bb0..890c8d6 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>snmp</module>
         <module>solr</module>
         <module>soroush</module>
         <module>splunk</module>
diff --git a/extensions-jvm/snmp/deployment/pom.xml b/extensions-jvm/snmp/deployment/pom.xml
new file mode 100644
index 0000000..08b1f1c
--- /dev/null
+++ b/extensions-jvm/snmp/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-snmp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-snmp-deployment</artifactId>
+    <name>Camel Quarkus :: SNMP :: 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-snmp</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/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java b/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
new file mode 100644
index 0000000..181f1a4
--- /dev/null
+++ b/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.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.snmp.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 SnmpProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SnmpProcessor.class);
+    private static final String FEATURE = "camel-snmp";
+
+    @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/snmp/integration-test/pom.xml b/extensions-jvm/snmp/integration-test/pom.xml
new file mode 100644
index 0000000..1fd39ed
--- /dev/null
+++ b/extensions-jvm/snmp/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-snmp-integration-test</artifactId>
+    <name>Camel Quarkus :: SNMP :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus SNMP 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-snmp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-snmp-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/snmp/integration-test/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java b/extensions-jvm/snmp/integration-test/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
new file mode 100644
index 0000000..1bacfd1
--- /dev/null
+++ b/extensions-jvm/snmp/integration-test/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.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.snmp.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("/snmp")
+@ApplicationScoped
+public class SnmpResource {
+
+    private static final Logger LOG = Logger.getLogger(SnmpResource.class);
+
+    private static final String COMPONENT_SNMP = "snmp";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/snmp")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSnmp() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SNMP) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SNMP);
+        return Response.status(500, COMPONENT_SNMP + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/snmp/integration-test/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java b/extensions-jvm/snmp/integration-test/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
new file mode 100644
index 0000000..046ed5b
--- /dev/null
+++ b/extensions-jvm/snmp/integration-test/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.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.snmp.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SnmpTest {
+
+    @Test
+    public void loadComponentSnmp() {
+        /* A simple autogenerated test */
+        RestAssured.get("/snmp/load/component/snmp")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/snmp/pom.xml b/extensions-jvm/snmp/pom.xml
new file mode 100644
index 0000000..e79b1e9
--- /dev/null
+++ b/extensions-jvm/snmp/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-snmp-parent</artifactId>
+    <name>Camel Quarkus :: SNMP</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/snmp/runtime/pom.xml b/extensions-jvm/snmp/runtime/pom.xml
new file mode 100644
index 0000000..912fd25
--- /dev/null
+++ b/extensions-jvm/snmp/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-snmp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-snmp</artifactId>
+    <name>Camel Quarkus :: SNMP :: Runtime</name>
+    <description>Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.</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-snmp</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/snmp/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/snmp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..1f9d4b1
--- /dev/null
+++ b/extensions-jvm/snmp/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 SNMP"
+description: "Receive traps and poll SNMP (Simple Network Management Protocol) capable devices"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/snmp.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 25c11e6..fb863ab 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1417,6 +1417,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-snmp</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-soap</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3665,6 +3670,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-snmp</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-snmp-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-soap</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 01/06: Soroush 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 dfb580b7b484157856cb9fef457b4dc56d5c8388
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 12:58:48 2020 +0200

    Soroush JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/soroush.adoc   |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/soroush/deployment/pom.xml          |  63 +++++++++++++
 .../soroush/deployment/SoroushProcessor.java       |  46 ++++++++++
 extensions-jvm/soroush/integration-test/pom.xml    | 100 +++++++++++++++++++++
 .../component/soroush/it/SoroushResource.java      |  51 +++++++++++
 .../quarkus/component/soroush/it/SoroushTest.java  |  34 +++++++
 extensions-jvm/soroush/pom.xml                     |  40 +++++++++
 extensions-jvm/soroush/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 8b8fdd8..f2b05ef 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2636,6 +2636,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-soroush</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</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index c5260d4..cbe4b67 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/soroush.adoc[Soroush]
 *** xref:reference/extensions/splunk.adoc[Splunk]
 *** xref:reference/extensions/splunk-hec.adoc[Splunk HEC]
 *** xref:reference/extensions/sql.adoc[SQL]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 972b5d4..9a5eeb0 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/soroush.adoc[Soroush] | [.camel-element-artifact]##camel-quarkus-soroush## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive messages as a Soroush chat bot.
+
 | 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.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/soroush.adoc b/docs/modules/ROOT/pages/reference/extensions/soroush.adoc
new file mode 100644
index 0000000..c6638c5
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/soroush.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[soroush]]
+= Soroush
+:page-aliases: extensions/soroush.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 receive messages as a Soroush chat bot.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/soroush-component.html[Soroush component], URI syntax: `soroush:action`
+
+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-soroush</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 61d654e..6893f2f 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/soroush.adoc[Soroush]  | camel-quarkus-soroush | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive messages as a Soroush chat bot.
+
 |  xref:reference/extensions/splunk.adoc[Splunk]  | camel-quarkus-splunk | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Publish or search for events in Splunk.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index aa4de94..c82c575 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>soroush</module>
         <module>splunk</module>
         <module>splunk-hec</module>
         <module>stax</module>
diff --git a/extensions-jvm/soroush/deployment/pom.xml b/extensions-jvm/soroush/deployment/pom.xml
new file mode 100644
index 0000000..45657a8
--- /dev/null
+++ b/extensions-jvm/soroush/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-soroush-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-soroush-deployment</artifactId>
+    <name>Camel Quarkus :: Soroush :: 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-soroush</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/soroush/deployment/src/main/java/org/apache/camel/quarkus/component/soroush/deployment/SoroushProcessor.java b/extensions-jvm/soroush/deployment/src/main/java/org/apache/camel/quarkus/component/soroush/deployment/SoroushProcessor.java
new file mode 100644
index 0000000..d9a8577
--- /dev/null
+++ b/extensions-jvm/soroush/deployment/src/main/java/org/apache/camel/quarkus/component/soroush/deployment/SoroushProcessor.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.soroush.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 SoroushProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SoroushProcessor.class);
+    private static final String FEATURE = "camel-soroush";
+
+    @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/soroush/integration-test/pom.xml b/extensions-jvm/soroush/integration-test/pom.xml
new file mode 100644
index 0000000..6019a33
--- /dev/null
+++ b/extensions-jvm/soroush/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-soroush-integration-test</artifactId>
+    <name>Camel Quarkus :: Soroush :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Soroush 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-soroush</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-soroush-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/soroush/integration-test/src/main/java/org/apache/camel/quarkus/component/soroush/it/SoroushResource.java b/extensions-jvm/soroush/integration-test/src/main/java/org/apache/camel/quarkus/component/soroush/it/SoroushResource.java
new file mode 100644
index 0000000..ccfb321
--- /dev/null
+++ b/extensions-jvm/soroush/integration-test/src/main/java/org/apache/camel/quarkus/component/soroush/it/SoroushResource.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.soroush.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("/soroush")
+@ApplicationScoped
+public class SoroushResource {
+
+    private static final Logger LOG = Logger.getLogger(SoroushResource.class);
+
+    private static final String COMPONENT_SOROUSH = "soroush";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/soroush")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSoroush() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SOROUSH) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SOROUSH);
+        return Response.status(500, COMPONENT_SOROUSH + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/soroush/integration-test/src/test/java/org/apache/camel/quarkus/component/soroush/it/SoroushTest.java b/extensions-jvm/soroush/integration-test/src/test/java/org/apache/camel/quarkus/component/soroush/it/SoroushTest.java
new file mode 100644
index 0000000..ab765ed
--- /dev/null
+++ b/extensions-jvm/soroush/integration-test/src/test/java/org/apache/camel/quarkus/component/soroush/it/SoroushTest.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.soroush.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SoroushTest {
+
+    @Test
+    public void loadComponentSoroush() {
+        /* A simple autogenerated test */
+        RestAssured.get("/soroush/load/component/soroush")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/soroush/pom.xml b/extensions-jvm/soroush/pom.xml
new file mode 100644
index 0000000..4e54c76
--- /dev/null
+++ b/extensions-jvm/soroush/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-soroush-parent</artifactId>
+    <name>Camel Quarkus :: Soroush</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/soroush/runtime/pom.xml b/extensions-jvm/soroush/runtime/pom.xml
new file mode 100644
index 0000000..cf7ff96
--- /dev/null
+++ b/extensions-jvm/soroush/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-soroush-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-soroush</artifactId>
+    <name>Camel Quarkus :: Soroush :: Runtime</name>
+    <description>Send and receive messages as a Soroush chat bot.</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-soroush</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/soroush/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/soroush/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..2ca86db
--- /dev/null
+++ b/extensions-jvm/soroush/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 Soroush"
+description: "Send and receive messages as a Soroush chat bot"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/soroush.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 2b5160a..76955f9 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1422,6 +1422,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-soroush</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-splunk</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3665,6 +3670,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-soroush</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-soroush-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-splunk</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 05/06: SIP 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 ad07eba547150d44b24fa8a95c2e9140b9f6f629
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 13:27:44 2020 +0200

    SIP JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/sip.adoc       |  30 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/sip/deployment/pom.xml              |  63 +++++++++++++
 .../component/sip/deployment/SipProcessor.java     |  46 ++++++++++
 extensions-jvm/sip/integration-test/pom.xml        | 100 +++++++++++++++++++++
 .../quarkus/component/sip/it/SipResource.java      |  64 +++++++++++++
 .../camel/quarkus/component/sip/it/SipTest.java    |  42 +++++++++
 extensions-jvm/sip/pom.xml                         |  40 +++++++++
 extensions-jvm/sip/runtime/pom.xml                 |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 547 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index 66f25dc..f0a24e9 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2558,6 +2558,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-sip</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-sjms</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index e90e61e..b0ca7fa 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -210,6 +210,7 @@
 *** xref:reference/extensions/servlet.adoc[Servlet]
 *** xref:reference/extensions/sjms.adoc[Simple JMS]
 *** xref:reference/extensions/sjms2.adoc[Simple JMS2]
+*** xref:reference/extensions/sip.adoc[SIP]
 *** xref:reference/extensions/slack.adoc[Slack]
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
 *** xref:reference/extensions/smpp.adoc[SMPP]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 83a2ee8..a787d17 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -673,6 +673,9 @@ Stable | 1.0.0 | Highly performant and transactional batch consumption of messag
 | xref:reference/extensions/sjms2.adoc[Simple JMS2] | [.camel-element-artifact]##camel-quarkus-sjms2## | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 2.x API.
 
+| xref:reference/extensions/sip.adoc[SIP] | [.camel-element-artifact]##camel-quarkus-sip## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive messages using the SIP protocol (used in telecommunications).
+
 | 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.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/sip.adoc b/docs/modules/ROOT/pages/reference/extensions/sip.adoc
new file mode 100644
index 0000000..42431a8
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/sip.adoc
@@ -0,0 +1,30 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[sip]]
+= SIP
+:page-aliases: extensions/sip.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 receive messages using the SIP protocol (used in telecommunications).
+
+== What's inside
+
+* https://camel.apache.org/components/latest/sip-component.html[SIP component], URI syntax: `sip:uri`
+* https://camel.apache.org/components/latest/sips-component.html[SIP (Secure) component], URI syntax: `sips:uri`
+
+Please refer to the above links for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-sip</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 46967de..24a2a4c 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -608,6 +608,9 @@ Stable | 1.0.0 | Send and receive messages to/from a JMS Queue or Topic using pl
 |  xref:reference/extensions/sjms2.adoc[Simple JMS2]  | camel-quarkus-sjms2 | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 2.x API.
 
+|  xref:reference/extensions/sip.adoc[SIP]  | camel-quarkus-sip | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive messages using the SIP protocol (used in telecommunications).
+
 |  xref:reference/extensions/slack.adoc[Slack]  | camel-quarkus-slack | [.camel-element-Native]##Native## +
 Stable | 0.3.0 | Send and receive messages to/from Slack.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index eca4b1f..8ba7a79 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>sip</module>
         <module>smpp</module>
         <module>snmp</module>
         <module>solr</module>
diff --git a/extensions-jvm/sip/deployment/pom.xml b/extensions-jvm/sip/deployment/pom.xml
new file mode 100644
index 0000000..60b7dcd
--- /dev/null
+++ b/extensions-jvm/sip/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-sip-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-sip-deployment</artifactId>
+    <name>Camel Quarkus :: SIP :: 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-sip</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/sip/deployment/src/main/java/org/apache/camel/quarkus/component/sip/deployment/SipProcessor.java b/extensions-jvm/sip/deployment/src/main/java/org/apache/camel/quarkus/component/sip/deployment/SipProcessor.java
new file mode 100644
index 0000000..729b0b1
--- /dev/null
+++ b/extensions-jvm/sip/deployment/src/main/java/org/apache/camel/quarkus/component/sip/deployment/SipProcessor.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.sip.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 SipProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SipProcessor.class);
+    private static final String FEATURE = "camel-sip";
+
+    @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/sip/integration-test/pom.xml b/extensions-jvm/sip/integration-test/pom.xml
new file mode 100644
index 0000000..73862d1
--- /dev/null
+++ b/extensions-jvm/sip/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-sip-integration-test</artifactId>
+    <name>Camel Quarkus :: SIP :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus SIP 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-sip</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-sip-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/sip/integration-test/src/main/java/org/apache/camel/quarkus/component/sip/it/SipResource.java b/extensions-jvm/sip/integration-test/src/main/java/org/apache/camel/quarkus/component/sip/it/SipResource.java
new file mode 100644
index 0000000..4a47591
--- /dev/null
+++ b/extensions-jvm/sip/integration-test/src/main/java/org/apache/camel/quarkus/component/sip/it/SipResource.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.sip.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("/sip")
+@ApplicationScoped
+public class SipResource {
+
+    private static final Logger LOG = Logger.getLogger(SipResource.class);
+
+    private static final String COMPONENT_SIP = "sip";
+    private static final String COMPONENT_SIPS = "sips";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/sip")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSip() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SIP) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SIP);
+        return Response.status(500, COMPONENT_SIP + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/sips")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSips() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SIPS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SIPS);
+        return Response.status(500, COMPONENT_SIPS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/sip/integration-test/src/test/java/org/apache/camel/quarkus/component/sip/it/SipTest.java b/extensions-jvm/sip/integration-test/src/test/java/org/apache/camel/quarkus/component/sip/it/SipTest.java
new file mode 100644
index 0000000..d4d4f8f
--- /dev/null
+++ b/extensions-jvm/sip/integration-test/src/test/java/org/apache/camel/quarkus/component/sip/it/SipTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.sip.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SipTest {
+
+    @Test
+    public void loadComponentSip() {
+        /* A simple autogenerated test */
+        RestAssured.get("/sip/load/component/sip")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentSips() {
+        /* A simple autogenerated test */
+        RestAssured.get("/sip/load/component/sips")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/sip/pom.xml b/extensions-jvm/sip/pom.xml
new file mode 100644
index 0000000..6750d0b
--- /dev/null
+++ b/extensions-jvm/sip/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-sip-parent</artifactId>
+    <name>Camel Quarkus :: SIP</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/sip/runtime/pom.xml b/extensions-jvm/sip/runtime/pom.xml
new file mode 100644
index 0000000..0bb71dc
--- /dev/null
+++ b/extensions-jvm/sip/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-sip-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-sip</artifactId>
+    <name>Camel Quarkus :: SIP :: Runtime</name>
+    <description>Send and receive messages using the SIP protocol (used in telecommunications).</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-sip</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/sip/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/sip/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..993538d
--- /dev/null
+++ b/extensions-jvm/sip/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 SIP"
+description: "Send and receive messages using the SIP protocol (used in telecommunications)"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/sip.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 0fe3475..fc61902 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1397,6 +1397,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-sip</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-sjms</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3625,6 +3630,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-sip</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-sip-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-sjms</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 06/06: Schematron 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 d461074b13bde9971e117c5f1b758a264fb1d44a
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 13:35:01 2020 +0200

    Schematron JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../pages/reference/extensions/schematron.adoc     |  29 ++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/schematron/deployment/pom.xml       |  63 +++++++++++++
 .../schematron/deployment/SchematronProcessor.java |  46 ++++++++++
 extensions-jvm/schematron/integration-test/pom.xml | 100 +++++++++++++++++++++
 .../schematron/it/SchematronResource.java          |  51 +++++++++++
 .../component/schematron/it/SchematronTest.java    |  34 +++++++
 extensions-jvm/schematron/pom.xml                  |  40 +++++++++
 extensions-jvm/schematron/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 f0a24e9..9f2b189 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2519,6 +2519,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-schematron</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-seda</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index b0ca7fa..2a9c8b9 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -204,6 +204,7 @@
 *** xref:reference/extensions/salesforce.adoc[Salesforce]
 *** xref:reference/extensions/sap-netweaver.adoc[SAP NetWeaver]
 *** xref:reference/extensions/scheduler.adoc[Scheduler]
+*** xref:reference/extensions/schematron.adoc[Schematron]
 *** xref:reference/extensions/jsch.adoc[SCP]
 *** xref:reference/extensions/seda.adoc[SEDA]
 *** xref:reference/extensions/servicenow.adoc[ServiceNow]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index a787d17..eace763 100644
--- a/docs/modules/ROOT/pages/reference/components.adoc
+++ b/docs/modules/ROOT/pages/reference/components.adoc
@@ -649,6 +649,9 @@ Stable | 1.0.0 | Send requests to SAP NetWeaver Gateway using HTTP.
 | xref:reference/extensions/scheduler.adoc[Scheduler] | [.camel-element-artifact]##camel-quarkus-scheduler## | [.camel-element-Native]##Native## +
 Stable | 0.4.0 | Generate messages in specified intervals using java.util.concurrent.ScheduledExecutorService.
 
+| xref:reference/extensions/schematron.adoc[Schematron] | [.camel-element-artifact]##camel-quarkus-schematron## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML payload using the Schematron Library.
+
 | xref:reference/extensions/jsch.adoc[SCP] | [.camel-element-artifact]##camel-quarkus-jsch## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Copy files to/from remote hosts using the secure copy protocol (SCP).
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/schematron.adoc b/docs/modules/ROOT/pages/reference/extensions/schematron.adoc
new file mode 100644
index 0000000..18d8d09
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/schematron.adoc
@@ -0,0 +1,29 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[schematron]]
+= Schematron
+:page-aliases: extensions/schematron.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Validate XML payload using the Schematron Library.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/schematron-component.html[Schematron component], URI syntax: `schematron:path`
+
+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-schematron</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 24a2a4c..6881fd5 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -590,6 +590,9 @@ Stable | 1.0.0 | Send requests to SAP NetWeaver Gateway using HTTP.
 |  xref:reference/extensions/scheduler.adoc[Scheduler]  | camel-quarkus-scheduler | [.camel-element-Native]##Native## +
 Stable | 0.4.0 | Generate messages in specified intervals using java.util.concurrent.ScheduledExecutorService.
 
+|  xref:reference/extensions/schematron.adoc[Schematron]  | camel-quarkus-schematron | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Validate XML payload using the Schematron Library.
+
 |  xref:reference/extensions/jsch.adoc[SCP]  | camel-quarkus-jsch | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Copy files to/from remote hosts using the secure copy protocol (SCP).
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 8ba7a79..ba8d5de 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>schematron</module>
         <module>sip</module>
         <module>smpp</module>
         <module>snmp</module>
diff --git a/extensions-jvm/schematron/deployment/pom.xml b/extensions-jvm/schematron/deployment/pom.xml
new file mode 100644
index 0000000..1d96179
--- /dev/null
+++ b/extensions-jvm/schematron/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-schematron-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-schematron-deployment</artifactId>
+    <name>Camel Quarkus :: Schematron :: 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-schematron</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/schematron/deployment/src/main/java/org/apache/camel/quarkus/component/schematron/deployment/SchematronProcessor.java b/extensions-jvm/schematron/deployment/src/main/java/org/apache/camel/quarkus/component/schematron/deployment/SchematronProcessor.java
new file mode 100644
index 0000000..2605566
--- /dev/null
+++ b/extensions-jvm/schematron/deployment/src/main/java/org/apache/camel/quarkus/component/schematron/deployment/SchematronProcessor.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.schematron.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 SchematronProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SchematronProcessor.class);
+    private static final String FEATURE = "camel-schematron";
+
+    @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/schematron/integration-test/pom.xml b/extensions-jvm/schematron/integration-test/pom.xml
new file mode 100644
index 0000000..7a89f15
--- /dev/null
+++ b/extensions-jvm/schematron/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-schematron-integration-test</artifactId>
+    <name>Camel Quarkus :: Schematron :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Schematron 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-schematron</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-schematron-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/schematron/integration-test/src/main/java/org/apache/camel/quarkus/component/schematron/it/SchematronResource.java b/extensions-jvm/schematron/integration-test/src/main/java/org/apache/camel/quarkus/component/schematron/it/SchematronResource.java
new file mode 100644
index 0000000..8151c0b
--- /dev/null
+++ b/extensions-jvm/schematron/integration-test/src/main/java/org/apache/camel/quarkus/component/schematron/it/SchematronResource.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.schematron.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("/schematron")
+@ApplicationScoped
+public class SchematronResource {
+
+    private static final Logger LOG = Logger.getLogger(SchematronResource.class);
+
+    private static final String COMPONENT_SCHEMATRON = "schematron";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/schematron")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSchematron() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SCHEMATRON) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SCHEMATRON);
+        return Response.status(500, COMPONENT_SCHEMATRON + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/schematron/integration-test/src/test/java/org/apache/camel/quarkus/component/schematron/it/SchematronTest.java b/extensions-jvm/schematron/integration-test/src/test/java/org/apache/camel/quarkus/component/schematron/it/SchematronTest.java
new file mode 100644
index 0000000..c5abad2
--- /dev/null
+++ b/extensions-jvm/schematron/integration-test/src/test/java/org/apache/camel/quarkus/component/schematron/it/SchematronTest.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.schematron.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SchematronTest {
+
+    @Test
+    public void loadComponentSchematron() {
+        /* A simple autogenerated test */
+        RestAssured.get("/schematron/load/component/schematron")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/schematron/pom.xml b/extensions-jvm/schematron/pom.xml
new file mode 100644
index 0000000..929b598
--- /dev/null
+++ b/extensions-jvm/schematron/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-schematron-parent</artifactId>
+    <name>Camel Quarkus :: Schematron</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/schematron/runtime/pom.xml b/extensions-jvm/schematron/runtime/pom.xml
new file mode 100644
index 0000000..41b3c3f
--- /dev/null
+++ b/extensions-jvm/schematron/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-schematron-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-schematron</artifactId>
+    <name>Camel Quarkus :: Schematron :: Runtime</name>
+    <description>Validate XML payload using the Schematron Library.</description>
+
+    <properties>
+        <firstVersion>1.1.0</firstVersion>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-schematron</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/schematron/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/schematron/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..62c39ba
--- /dev/null
+++ b/extensions-jvm/schematron/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 Schematron"
+description: "Validate XML payload using the Schematron Library"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/schematron.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index fc61902..f67c105 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1372,6 +1372,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-schematron</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-seda</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3600,6 +3605,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-schematron</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-schematron-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-seda</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>


[camel-quarkus] 02/06: Solr 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 8a4f6f9c9b4fded91dbf7a76f0baf716cbca05b2
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 13:00:38 2020 +0200

    Solr JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/solr.adoc      |  31 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/solr/deployment/pom.xml             |  63 +++++++++++++
 .../component/solr/deployment/SolrProcessor.java   |  46 ++++++++++
 extensions-jvm/solr/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/solr/it/SolrResource.java    |  77 ++++++++++++++++
 .../camel/quarkus/component/solr/it/SolrTest.java  |  50 +++++++++++
 extensions-jvm/solr/pom.xml                        |  40 +++++++++
 extensions-jvm/solr/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 pom.xml                                            |   2 +-
 poms/bom/pom.xml                                   |  20 +++++
 16 files changed, 575 insertions(+), 1 deletion(-)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index f2b05ef..23c9cb9 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2636,6 +2636,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-solr</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-soroush</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index cbe4b67..f353708 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/solr.adoc[Solr]
 *** xref:reference/extensions/soroush.adoc[Soroush]
 *** xref:reference/extensions/splunk.adoc[Splunk]
 *** xref:reference/extensions/splunk-hec.adoc[Splunk HEC]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 9a5eeb0..7ff1e0f 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/solr.adoc[Solr] | [.camel-element-artifact]##camel-quarkus-solr## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform operations against Apache Lucene Solr.
+
 | xref:reference/extensions/soroush.adoc[Soroush] | [.camel-element-artifact]##camel-quarkus-soroush## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send and receive messages as a Soroush chat bot.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/solr.adoc b/docs/modules/ROOT/pages/reference/extensions/solr.adoc
new file mode 100644
index 0000000..ac89d2e
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/solr.adoc
@@ -0,0 +1,31 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[solr]]
+= Solr
+:page-aliases: extensions/solr.adoc
+
+[.badges]
+[.badge-key]##Since Camel Quarkus##[.badge-version]##1.1.0## [.badge-key]##JVM##[.badge-supported]##supported## [.badge-key]##Native##[.badge-unsupported]##unsupported##
+
+Perform operations against Apache Lucene Solr.
+
+== What's inside
+
+* https://camel.apache.org/components/latest/solr-component.html[Solr component], URI syntax: `solr:url`
+* https://camel.apache.org/components/latest/solrCloud-component.html[Solr component], URI syntax: `solrCloud:url`
+* https://camel.apache.org/components/latest/solrs-component.html[Solr (Secure) component], URI syntax: `solrs:url`
+
+Please refer to the above links for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-solr</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 6893f2f..1498da1 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/solr.adoc[Solr]  | camel-quarkus-solr | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Perform operations against Apache Lucene Solr.
+
 |  xref:reference/extensions/soroush.adoc[Soroush]  | camel-quarkus-soroush | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Send and receive messages as a Soroush chat bot.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index c82c575..4155bb0 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>solr</module>
         <module>soroush</module>
         <module>splunk</module>
         <module>splunk-hec</module>
diff --git a/extensions-jvm/solr/deployment/pom.xml b/extensions-jvm/solr/deployment/pom.xml
new file mode 100644
index 0000000..ef25250
--- /dev/null
+++ b/extensions-jvm/solr/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-solr-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-solr-deployment</artifactId>
+    <name>Camel Quarkus :: Solr :: 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-solr</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/solr/deployment/src/main/java/org/apache/camel/quarkus/component/solr/deployment/SolrProcessor.java b/extensions-jvm/solr/deployment/src/main/java/org/apache/camel/quarkus/component/solr/deployment/SolrProcessor.java
new file mode 100644
index 0000000..b8561d0
--- /dev/null
+++ b/extensions-jvm/solr/deployment/src/main/java/org/apache/camel/quarkus/component/solr/deployment/SolrProcessor.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.solr.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 SolrProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SolrProcessor.class);
+    private static final String FEATURE = "camel-solr";
+
+    @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/solr/integration-test/pom.xml b/extensions-jvm/solr/integration-test/pom.xml
new file mode 100644
index 0000000..857f287
--- /dev/null
+++ b/extensions-jvm/solr/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-solr-integration-test</artifactId>
+    <name>Camel Quarkus :: Solr :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus Solr 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-solr</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-solr-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/solr/integration-test/src/main/java/org/apache/camel/quarkus/component/solr/it/SolrResource.java b/extensions-jvm/solr/integration-test/src/main/java/org/apache/camel/quarkus/component/solr/it/SolrResource.java
new file mode 100644
index 0000000..e03d6e3
--- /dev/null
+++ b/extensions-jvm/solr/integration-test/src/main/java/org/apache/camel/quarkus/component/solr/it/SolrResource.java
@@ -0,0 +1,77 @@
+/*
+ * 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.solr.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("/solr")
+@ApplicationScoped
+public class SolrResource {
+
+    private static final Logger LOG = Logger.getLogger(SolrResource.class);
+
+    private static final String COMPONENT_SOLR = "solr";
+    private static final String COMPONENT_SOLRCLOUD = "solrCloud";
+    private static final String COMPONENT_SOLRS = "solrs";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/solr")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSolr() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SOLR) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SOLR);
+        return Response.status(500, COMPONENT_SOLR + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/solrcloud")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSolrCloud() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SOLRCLOUD) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SOLRCLOUD);
+        return Response.status(500, COMPONENT_SOLRCLOUD + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/solrs")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSolrs() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SOLRS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SOLRS);
+        return Response.status(500, COMPONENT_SOLRS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/solr/integration-test/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java b/extensions-jvm/solr/integration-test/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
new file mode 100644
index 0000000..ba90279
--- /dev/null
+++ b/extensions-jvm/solr/integration-test/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
@@ -0,0 +1,50 @@
+/*
+ * 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.solr.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SolrTest {
+
+    @Test
+    public void loadComponentSolr() {
+        /* A simple autogenerated test */
+        RestAssured.get("/solr/load/component/solr")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentSolrCloud() {
+        /* A simple autogenerated test */
+        RestAssured.get("/solr/load/component/solrcloud")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentSolrs() {
+        /* A simple autogenerated test */
+        RestAssured.get("/solr/load/component/solrs")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/solr/pom.xml b/extensions-jvm/solr/pom.xml
new file mode 100644
index 0000000..180bfed
--- /dev/null
+++ b/extensions-jvm/solr/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-solr-parent</artifactId>
+    <name>Camel Quarkus :: Solr</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/solr/runtime/pom.xml b/extensions-jvm/solr/runtime/pom.xml
new file mode 100644
index 0000000..7516cfc
--- /dev/null
+++ b/extensions-jvm/solr/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-solr-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-solr</artifactId>
+    <name>Camel Quarkus :: Solr :: Runtime</name>
+    <description>Perform operations against Apache Lucene Solr.</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-solr</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/solr/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/solr/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..9091cce
--- /dev/null
+++ b/extensions-jvm/solr/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 Solr"
+description: "Perform operations against Apache Lucene Solr"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/solr.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/pom.xml b/pom.xml
index 510f21c..d3c3be5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,7 +60,7 @@
         <gson.version>2.8.5</gson.version>
         <hapi.version>4.1.0</hapi.version>
         <httpclient.cache.version>4.5.5</httpclient.cache.version>
-        <httpmime.version>4.1.3</httpmime.version>
+        <httpclient.version>4.5.12</httpclient.version><!-- keep in sync with both Camel and Quarkus -->
         <influxdb.version>2.20</influxdb.version>
         <jackson.version>2.10.5</jackson.version>
         <java.xml.ws.version>2.3.1</java.xml.ws.version>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 76955f9..25c11e6 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1422,6 +1422,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-solr</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-soroush</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3670,6 +3675,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-solr</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-solr-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-soroush</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
@@ -4551,6 +4566,11 @@
                 </exclusions>
             </dependency>
             <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpmime</artifactId>
+                <version>${httpclient.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.kafka</groupId>
                 <artifactId>connect-runtime</artifactId>
                 <version>${kafka.version}</version>


[camel-quarkus] 04/06: SMPP 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 88e4645e9daa7b91f87bc4c43dddf765a1c4e56d
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Mon Sep 7 13:26:05 2020 +0200

    SMPP JVM support
---
 catalog/pom.xml                                    |  13 +++
 docs/modules/ROOT/nav.adoc                         |   1 +
 docs/modules/ROOT/pages/reference/components.adoc  |   3 +
 .../ROOT/pages/reference/extensions/smpp.adoc      |  30 +++++++
 docs/modules/ROOT/pages/reference/index.adoc       |   3 +
 extensions-jvm/pom.xml                             |   1 +
 extensions-jvm/smpp/deployment/pom.xml             |  63 +++++++++++++
 .../component/smpp/deployment/SmppProcessor.java   |  46 ++++++++++
 extensions-jvm/smpp/integration-test/pom.xml       | 100 +++++++++++++++++++++
 .../quarkus/component/smpp/it/SmppResource.java    |  64 +++++++++++++
 .../camel/quarkus/component/smpp/it/SmppTest.java  |  42 +++++++++
 extensions-jvm/smpp/pom.xml                        |  40 +++++++++
 extensions-jvm/smpp/runtime/pom.xml                |  94 +++++++++++++++++++
 .../main/resources/META-INF/quarkus-extension.yaml |  32 +++++++
 poms/bom/pom.xml                                   |  15 ++++
 15 files changed, 547 insertions(+)

diff --git a/catalog/pom.xml b/catalog/pom.xml
index ef1b6b1..66f25dc 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -2610,6 +2610,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-smpp</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-snakeyaml</artifactId>
             <version>${project.version}</version>
             <type>pom</type>
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index a9d2160..e90e61e 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -212,6 +212,7 @@
 *** xref:reference/extensions/sjms2.adoc[Simple JMS2]
 *** xref:reference/extensions/slack.adoc[Slack]
 *** xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]
+*** xref:reference/extensions/smpp.adoc[SMPP]
 *** xref:reference/extensions/snmp.adoc[SNMP]
 *** xref:reference/extensions/soap.adoc[SOAP]
 *** xref:reference/extensions/solr.adoc[Solr]
diff --git a/docs/modules/ROOT/pages/reference/components.adoc b/docs/modules/ROOT/pages/reference/components.adoc
index 720ed74..83a2ee8 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/smpp.adoc[SMPP] | [.camel-element-artifact]##camel-quarkus-smpp## | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive SMS messages using a SMSC (Short Message Service Center).
+
 | xref:reference/extensions/snmp.adoc[SNMP] | [.camel-element-artifact]##camel-quarkus-snmp## | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
 
diff --git a/docs/modules/ROOT/pages/reference/extensions/smpp.adoc b/docs/modules/ROOT/pages/reference/extensions/smpp.adoc
new file mode 100644
index 0000000..4871376
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/smpp.adoc
@@ -0,0 +1,30 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+
+[[smpp]]
+= SMPP
+:page-aliases: extensions/smpp.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 receive SMS messages using a SMSC (Short Message Service Center).
+
+== What's inside
+
+* https://camel.apache.org/components/latest/smpp-component.html[SMPP component], URI syntax: `smpp:host:port`
+* https://camel.apache.org/components/latest/smpps-component.html[SMPP (Secure) component], URI syntax: `smpps:host:port`
+
+Please refer to the above links for usage and configuration details.
+
+== Maven coordinates
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-smpp</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 ac6c037..46967de 100644
--- a/docs/modules/ROOT/pages/reference/index.adoc
+++ b/docs/modules/ROOT/pages/reference/index.adoc
@@ -614,6 +614,9 @@ Stable | 0.3.0 | Send and receive messages to/from Slack.
 |  xref:reference/extensions/smallrye-reactive-messaging.adoc[SmallRye Reactive Messaging]  | camel-quarkus-smallrye-reactive-messaging | [.camel-element-Native]##Native## +
 Stable | 1.0.0 | Camel integration with SmallRye Reactive Messaging
 
+|  xref:reference/extensions/smpp.adoc[SMPP]  | camel-quarkus-smpp | [.camel-element-JVM]##JVM## +
+Preview | 1.1.0 | Send and receive SMS messages using a SMSC (Short Message Service Center).
+
 |  xref:reference/extensions/snmp.adoc[SNMP]  | camel-quarkus-snmp | [.camel-element-JVM]##JVM## +
 Preview | 1.1.0 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
 
diff --git a/extensions-jvm/pom.xml b/extensions-jvm/pom.xml
index 890c8d6..eca4b1f 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>smpp</module>
         <module>snmp</module>
         <module>solr</module>
         <module>soroush</module>
diff --git a/extensions-jvm/smpp/deployment/pom.xml b/extensions-jvm/smpp/deployment/pom.xml
new file mode 100644
index 0000000..4faf83a
--- /dev/null
+++ b/extensions-jvm/smpp/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-smpp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-smpp-deployment</artifactId>
+    <name>Camel Quarkus :: SMPP :: 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-smpp</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/smpp/deployment/src/main/java/org/apache/camel/quarkus/component/smpp/deployment/SmppProcessor.java b/extensions-jvm/smpp/deployment/src/main/java/org/apache/camel/quarkus/component/smpp/deployment/SmppProcessor.java
new file mode 100644
index 0000000..28ecaf0
--- /dev/null
+++ b/extensions-jvm/smpp/deployment/src/main/java/org/apache/camel/quarkus/component/smpp/deployment/SmppProcessor.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.smpp.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 SmppProcessor {
+
+    private static final Logger LOG = Logger.getLogger(SmppProcessor.class);
+    private static final String FEATURE = "camel-smpp";
+
+    @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/smpp/integration-test/pom.xml b/extensions-jvm/smpp/integration-test/pom.xml
new file mode 100644
index 0000000..4ee47d5
--- /dev/null
+++ b/extensions-jvm/smpp/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-smpp-integration-test</artifactId>
+    <name>Camel Quarkus :: SMPP :: Integration Test</name>
+    <description>Integration tests for Camel Quarkus SMPP 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-smpp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.rest-assured</groupId>
+            <artifactId>rest-assured</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-smpp-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/smpp/integration-test/src/main/java/org/apache/camel/quarkus/component/smpp/it/SmppResource.java b/extensions-jvm/smpp/integration-test/src/main/java/org/apache/camel/quarkus/component/smpp/it/SmppResource.java
new file mode 100644
index 0000000..ac00fa9
--- /dev/null
+++ b/extensions-jvm/smpp/integration-test/src/main/java/org/apache/camel/quarkus/component/smpp/it/SmppResource.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.smpp.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("/smpp")
+@ApplicationScoped
+public class SmppResource {
+
+    private static final Logger LOG = Logger.getLogger(SmppResource.class);
+
+    private static final String COMPONENT_SMPP = "smpp";
+    private static final String COMPONENT_SMPPS = "smpps";
+    @Inject
+    CamelContext context;
+
+    @Path("/load/component/smpp")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSmpp() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SMPP) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SMPP);
+        return Response.status(500, COMPONENT_SMPP + " could not be loaded from the Camel context").build();
+    }
+
+    @Path("/load/component/smpps")
+    @GET
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response loadComponentSmpps() throws Exception {
+        /* This is an autogenerated test */
+        if (context.getComponent(COMPONENT_SMPPS) != null) {
+            return Response.ok().build();
+        }
+        LOG.warnf("Could not load [%s] from the Camel context", COMPONENT_SMPPS);
+        return Response.status(500, COMPONENT_SMPPS + " could not be loaded from the Camel context").build();
+    }
+}
diff --git a/extensions-jvm/smpp/integration-test/src/test/java/org/apache/camel/quarkus/component/smpp/it/SmppTest.java b/extensions-jvm/smpp/integration-test/src/test/java/org/apache/camel/quarkus/component/smpp/it/SmppTest.java
new file mode 100644
index 0000000..8304a37
--- /dev/null
+++ b/extensions-jvm/smpp/integration-test/src/test/java/org/apache/camel/quarkus/component/smpp/it/SmppTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.component.smpp.it;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class SmppTest {
+
+    @Test
+    public void loadComponentSmpp() {
+        /* A simple autogenerated test */
+        RestAssured.get("/smpp/load/component/smpp")
+                .then()
+                .statusCode(200);
+    }
+
+    @Test
+    public void loadComponentSmpps() {
+        /* A simple autogenerated test */
+        RestAssured.get("/smpp/load/component/smpps")
+                .then()
+                .statusCode(200);
+    }
+
+}
diff --git a/extensions-jvm/smpp/pom.xml b/extensions-jvm/smpp/pom.xml
new file mode 100644
index 0000000..cc67d2a
--- /dev/null
+++ b/extensions-jvm/smpp/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-smpp-parent</artifactId>
+    <name>Camel Quarkus :: SMPP</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+        <module>integration-test</module>
+    </modules>
+</project>
diff --git a/extensions-jvm/smpp/runtime/pom.xml b/extensions-jvm/smpp/runtime/pom.xml
new file mode 100644
index 0000000..af3741e
--- /dev/null
+++ b/extensions-jvm/smpp/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-smpp-parent</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-smpp</artifactId>
+    <name>Camel Quarkus :: SMPP :: Runtime</name>
+    <description>Send and receive SMS messages using a SMSC (Short Message Service Center).</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-smpp</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/smpp/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-jvm/smpp/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..3abc285
--- /dev/null
+++ b/extensions-jvm/smpp/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 SMPP"
+description: "Send and receive SMS messages using a SMSC (Short Message Service Center)"
+metadata:
+  unlisted: true
+  guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/smpp.html"
+  categories:
+  - "integration"
+  status:
+  - "preview"
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index fb863ab..0fe3475 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -1412,6 +1412,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-smpp</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-snakeyaml</artifactId>
                 <version>${camel.version}</version>
             </dependency>
@@ -3660,6 +3665,16 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-smpp</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-smpp-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-snakeyaml</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>