<?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>1.5.0</version>
    </parent>

    <artifactId>camel-quarkus-extensions</artifactId>
    <packaging>pom</packaging>

    <name>Camel Quarkus :: Extensions</name>

    <modules>
        <!-- extensions a..z; do not remove this comment, it is important when sorting via  mvn process-resources -Pformat -->
        <module>activemq</module>
        <module>ahc</module>
        <module>ahc-ws</module>
        <module>amqp</module>
        <module>arangodb</module>
        <module>as2</module>
        <module>atom</module>
        <module>attachments</module>
        <module>avro</module>
        <module>avro-rpc</module>
        <module>aws-ec2</module>
        <module>aws-ecs</module>
        <module>aws-eks</module>
        <module>aws-iam</module>
        <module>aws-kinesis</module>
        <module>aws-kms</module>
        <module>aws-lambda</module>
        <module>aws-s3</module>
        <module>aws-sdb</module>
        <module>aws-sns</module>
        <module>aws-sqs</module>
        <module>aws-swf</module>
        <module>aws-translate</module>
        <module>aws2-athena</module>
        <module>aws2-cw</module>
        <module>aws2-ddb</module>
        <module>aws2-ec2</module>
        <module>aws2-ecs</module>
        <module>aws2-eks</module>
        <module>aws2-iam</module>
        <module>aws2-kms</module>
        <module>aws2-lambda</module>
        <module>aws2-mq</module>
        <module>aws2-msk</module>
        <module>aws2-s3</module>
        <module>aws2-ses</module>
        <module>aws2-sns</module>
        <module>aws2-sqs</module>
        <module>aws2-sts</module>
        <module>aws2-translate</module>
        <module>azure</module>
        <module>base64</module>
        <module>bean</module>
        <module>bean-validator</module>
        <module>bindy</module>
        <module>box</module>
        <module>braintree</module>
        <module>browse</module>
        <module>caffeine</module>
        <module>componentdsl</module>
        <module>consul</module>
        <module>controlbus</module>
        <module>couchdb</module>
        <module>cron</module>
        <module>crypto</module>
        <module>csv</module>
        <module>dataformat</module>
        <module>debezium-mysql</module>
        <module>debezium-postgres</module>
        <module>debezium-sqlserver</module>
        <module>direct</module>
        <module>disruptor</module>
        <module>dozer</module>
        <module>dropbox</module>
        <module>elasticsearch-rest</module>
        <module>endpointdsl</module>
        <module>exec</module>
        <module>fhir</module>
        <module>file</module>
        <module>file-watch</module>
        <module>flatpack</module>
        <module>fop</module>
        <module>ftp</module>
        <module>geocoder</module>
        <module>git</module>
        <module>github</module>
        <module>google-bigquery</module>
        <module>google-calendar</module>
        <module>google-drive</module>
        <module>google-mail</module>
        <module>google-pubsub</module>
        <module>google-sheets</module>
        <module>graphql</module>
        <module>grok</module>
        <module>grpc</module>
        <module>gson</module>
        <module>headersmap</module>
        <module>http</module>
        <module>hystrix</module>
        <module>ical</module>
        <module>infinispan</module>
        <module>influxdb</module>
        <module>jackson</module>
        <module>jacksonxml</module>
        <module>jaxb</module>
        <module>jdbc</module>
        <module>jing</module>
        <module>jira</module>
        <module>jms</module>
        <module>johnzon</module>
        <module>jolt</module>
        <module>jpa</module>
        <module>jsch</module>
        <module>jslt</module>
        <module>json-validator</module>
        <module>jsonb</module>
        <module>jsonpath</module>
        <module>jta</module>
        <module>kafka</module>
        <module>kotlin</module>
        <module>kubernetes</module>
        <module>kudu</module>
        <module>leveldb</module>
        <module>log</module>
        <module>lumberjack</module>
        <module>lzf</module>
        <module>mail</module>
        <module>master</module>
        <module>micrometer</module>
        <module>microprofile-fault-tolerance</module>
        <module>microprofile-health</module>
        <module>microprofile-metrics</module>
        <module>mock</module>
        <module>mongodb</module>
        <module>mongodb-gridfs</module>
        <module>msv</module>
        <module>mustache</module>
        <module>nagios</module>
        <module>nats</module>
        <module>netty</module>
        <module>netty-http</module>
        <module>nsq</module>
        <module>olingo4</module>
        <module>openapi-java</module>
        <module>opentracing</module>
        <module>optaplanner</module>
        <module>paho</module>
        <module>pdf</module>
        <module>pg-replication-slot</module>
        <module>pgevent</module>
        <module>platform-http</module>
        <module>protobuf</module>
        <module>quartz</module>
        <module>qute</module>
        <module>rabbitmq</module>
        <module>reactive-streams</module>
        <module>ref</module>
        <module>rest</module>
        <module>rest-openapi</module>
        <module>rss</module>
        <module>saga</module>
        <module>salesforce</module>
        <module>sap-netweaver</module>
        <module>scheduler</module>
        <module>seda</module>
        <module>servicenow</module>
        <module>servlet</module>
        <module>shiro</module>
        <module>sjms</module>
        <module>sjms2</module>
        <module>slack</module>
        <module>smallrye-reactive-messaging</module>
        <module>snakeyaml</module>
        <module>soap</module>
        <module>solr</module>
        <module>sql</module>
        <module>ssh</module>
        <module>stream</module>
        <module>stringtemplate</module>
        <module>tagsoup</module>
        <module>tarfile</module>
        <module>telegram</module>
        <module>tika</module>
        <module>timer</module>
        <module>twilio</module>
        <module>twitter</module>
        <module>univocity-parsers</module>
        <module>validator</module>
        <module>velocity</module>
        <module>vertx</module>
        <module>vertx-http</module>
        <module>vertx-websocket</module>
        <module>vm</module>
        <module>weather</module>
        <module>websocket-jsr356</module>
        <module>xpath</module>
        <module>xslt</module>
        <module>xstream</module>
        <module>zendesk</module>
        <module>zip-deflater</module>
        <module>zipfile</module>
    </modules>

</project>
