<?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</artifactId>
        <version>3.0.0-RC2</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>camel-quarkus-integration-tests-jvm</artifactId>
    <packaging>pom</packaging>

    <name>Camel Quarkus :: Integration Tests :: JVM</name>

    <modules>
        <module>asn1</module>
        <module>asterisk</module>
        <module>aws-secrets-manager</module>
        <module>aws-xray</module>
        <module>azure-cosmosdb</module>
        <module>azure-key-vault</module>
        <module>azure-servicebus</module>
        <module>azure-storage-datalake</module>
        <module>barcode</module>
        <module>bonita</module>
        <module>chatscript</module>
        <module>chunk</module>
        <module>cli-connector</module>
        <module>cm-sms</module>
        <module>coap</module>
        <module>cometd</module>
        <module>console</module>
        <module>controlbus-statistics</module>
        <module>corda</module>
        <module>couchbase</module>
        <module>djl</module>
        <module>dns</module>
        <module>drill</module>
        <module>dsl-modeline</module>
        <module>ehcache</module>
        <module>elasticsearch</module>
        <module>etcd3</module>
        <module>facebook</module>
        <module>fastjson</module>
        <module>flink</module>
        <module>google-functions</module>
        <module>google-secret-manager</module>
        <module>guava-eventbus</module>
        <module>hashicorp-vault</module>
        <module>hdfs</module>
        <module>huaweicloud-smn</module>
        <module>iec60870</module>
        <module>ignite</module>
        <module>irc</module>
        <module>jasypt</module>
        <module>jcr</module>
        <module>jgroups</module>
        <module>jgroups-raft</module>
        <module>jooq</module>
        <module>json-patch</module>
        <module>jsonapi</module>
        <module>jt400</module>
        <module>ldif</module>
        <module>lucene</module>
        <module>mvel</module>
        <module>printer</module>
        <module>pulsar</module>
        <module>quickfix</module>
        <module>redis</module>
        <module>robotframework</module>
        <module>schematron</module>
        <module>smpp</module>
        <module>snmp</module>
        <module>splunk-hec</module>
        <module>stitch</module>
        <module>stomp</module>
        <module>stub</module>
        <module>thrift</module>
        <module>web3j</module>
        <module>wordpress</module>
        <module>workday</module>
        <module>xj</module>
        <module>xml-grouped</module>
        <module>xmpp</module>
        <module>xslt-saxon</module>
        <module>zookeeper</module>
        <module>zookeeper-master</module>
    </modules>
</project>
