<?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</groupId>
        <artifactId>camel-dependencies</artifactId>
        <version>3.11.0</version>
    </parent>

    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus</artifactId>
    <version>2.2.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Camel Quarkus</name>
    <description>Apache Camel extensions for Quarkus</description>
    <url>http://camel.apache.org</url>
    <inceptionYear>2019</inceptionYear>

    <properties>
        <!-- Primary dependencies - maintained manually -->
        <camel.major.minor>3.11</camel.major.minor> <!-- run after each change: cd docs && mvnd validate -->
        <camel.version>${camel.major.minor}.0</camel.version>
        <camel.docs.components.xref>${camel.major.minor}.x@components</camel.docs.components.xref><!-- the version in Camel's docs/components/antora.yml -->
        <camel.docs.branch>camel-${camel.major.minor}.x</camel.docs.branch><!-- The stable branch on which our Antora docs depends -->

        <cassandra-quarkus.version>1.1.0</cassandra-quarkus.version><!-- https://repo1.maven.org/maven2/com/datastax/oss/quarkus/cassandra-quarkus-bom/ -->
        <debezium.version>1.6.1.Final</debezium.version><!-- May go back to Camel's ${debezium-version} when they are in sync https://repo1.maven.org/maven2/io/debezium/debezium-bom/ -->
        <optaplanner.version>8.8.0.Final</optaplanner.version><!-- May go back to Camel's ${optaplanner-version} when they are in sync https://repo1.maven.org/maven2/org/optaplanner/optaplanner-quarkus/ -->
        <quarkiverse.freemarker.version>0.3.0</quarkiverse.freemarker.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/freemarker/quarkus-freemarker-parent/ -->
        <quarkiverse-minio.version>2.0.0</quarkiverse-minio.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/minio/quarkus-minio-parent/ -->
        <quarkus.version>2.1.0.Final</quarkus.version><!-- https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
        <quarkus-google-cloud.version>0.9.0</quarkus-google-cloud.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/googlecloudservices/quarkus-google-cloud-services-bom/ -->
        <quarkus-hazelcast-client.version>2.0.0</quarkus-hazelcast-client.version><!-- https://repo1.maven.org/maven2/com/hazelcast/quarkus-hazelcast-client-bom/ -->
        <quarkus-qpid-jms.version>0.26.0</quarkus-qpid-jms.version><!-- https://repo1.maven.org/maven2/org/amqphub/quarkus/quarkus-qpid-jms-bom/ -->

        <!-- Compile dependency versions (keep sorted alphabetically) -->
        <!-- Items annotated with @sync can be updated by running mvn cq:sync-versions -N -e -->
        <ahc.version>${ahc-version}</ahc.version>
        <animal-sniffer.version>1.18</animal-sniffer.version>
        <antlr3.version>3.5.2</antlr3.version><!-- Spark, Stringtemplate and probably others -->
        <avro.version>1.10.2</avro.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.apache.avro:avro -->
        <aws-java-sdk.version>1.11.714</aws-java-sdk.version>
        <azure-sdk-bom.version>1.0.3</azure-sdk-bom.version><!-- Revert back to ${azure-sdk-bom-version} with Camel 3.11 see https://github.com/apache/camel/pull/5642 -->
        <bouncycastle.version>1.69</bouncycastle.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.bouncycastle:bcprov-jdk15on -->
        <commons-beanutils.version>${commons-beanutils-version}</commons-beanutils.version>
        <commons-cli.version>1.4</commons-cli.version><!-- keep in sync with Quarkus, via quarkus-bootstrap-core -->
        <commons-collections.version>3.2.2</commons-collections.version><!-- used by hbase, should be pretty stable as commons-collections are not developed actively anymore -->
        <commons-lang.version>2.6</commons-lang.version><!-- used by hbase, should be pretty stable as commons-lang is not developed actively anymore -->
        <commons-math3.version>3.6.1</commons-math3.version><!-- Mess in the transitive dependencies of Spark and hbase-testing-util -->
        <curator.version>4.3.0</curator.version><!-- Mess in the transitive dependencies of Spark, Zookeeper and other hadoop related components -->
        <derby.version>10.15.2.0</derby.version><!-- Spark -->
        <eddsa.version>${eddsa-version}</eddsa.version>
        <freemarker.version>2.3.31</freemarker.version><!-- @sync io.quarkiverse.freemarker:quarkus-freemarker-parent:${quarkiverse.freemarker.version} prop:freemarker.version -->
        <fommil.netlib.core.version>1.1.2</fommil.netlib.core.version><!-- Mess in Weka transitive deps -->
        <jodatime.version>2.10.6</jodatime.version><!-- Mess in transitive dependencies of Spark and Splunk -->
        <github-api.version>1.111</github-api.version><!-- Used in a Groovy script bellow -->
        <guava.version>29.0-jre</guava.version>
        <graalvm.version>21.1.0</graalvm.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.graalvm.nativeimage:svm -->
        <gson.version>2.8.6</gson.version><!-- @sync com.ibm.jsonata4java:JSONata4Java:${jsonata4java-version} dep:com.google.code.gson:gson -->
        <hadoop2.version>${hadoop2-version}</hadoop2.version><!-- Spark -->
        <hapi.version>${hapi-version}</hapi.version>
        <hapi-fhir.version>${hapi-fhir-version}</hapi-fhir.version>
        <hbase.version>${hbase-version}</hbase.version>
        <htrace.version>4.2.0-incubating</htrace.version><!-- Mess in hbase transitive deps -->
        <influxdb.version>${influx-java-driver-version}</influxdb.version>
        <jackson-asl.version>1.9.13</jackson-asl.version><!-- Mess in the transitive dependencies of spark and hbase-testing-util -->
        <jakarta.jws.ws.api.version>2.1.0</jakarta.jws.ws.api.version>
        <jakarta.xml.ws.api.version>2.3.3</jakarta.xml.ws.api.version>
        <jcodings.version>1.0.55</jcodings.version><!-- used by hbase -->
        <joni.version>2.1.31</joni.version><!-- used by json-validator -->
        <jsoup.version>1.12.1</jsoup.version><!-- used by oaipmh -->
        <jaxen.version>1.2.0</jaxen.version>
        <javassist.version>3.22.0-CR2</javassist.version><!-- debezium -->
        <jersey-sun.version>1.19.4</jersey-sun.version><!-- Spark -->
        <jetty.version>${jetty9-version}</jetty.version>
        <jnr-ffi.version>2.1.2</jnr-ffi.version><!-- Mess in web3j transitive deps -->
        <json-smart.version>2.4.7</json-smart.version>
        <kafka.version>2.8.0</kafka.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.apache.kafka:kafka-clients -->
        <kudu.version>${kudu-version}</kudu.version>
        <kotlin.version>1.5.21</kotlin.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.jetbrains.kotlin:kotlin-stdlib -->
        <netty3.version>${netty3-version}</netty3.version><!-- Spark -->
        <minio.version>${minio-version}</minio.version><!-- Keep in sync with quarkiverse-minio and Camel, preferring Camel assuming that it is more likely to be up to date -->
        <mvel2.version>${mvel-version}</mvel2.version>
        <nimbus-jose-jwt.version>9.10</nimbus-jose-jwt.version><!-- Mess in hdfs transitive deps, used also by io.strimzi:kafka-oauth-client recommended by https://quarkus.io/guides/kafka#authenticating-with-oauth -->
        <okhttp.version>${squareup-okhttp-version}</okhttp.version>
        <okio.version>${squareup-okio-version}</okio.version>
        <protobuf.version>${protobuf-version}</protobuf.version>
        <retrofit.version>2.5.0</retrofit.version>
        <saaj.impl.version>1.5.3</saaj.impl.version>
        <scala-2.11.version>2.11.12</scala-2.11.version><!-- Spark -->
        <smallrye.reactive.messaging.camel.version>3.7.1</smallrye.reactive.messaging.camel.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:io.smallrye.reactive:smallrye-reactive-messaging-provider -->
        <spring.version>${spring5-version}</spring.version>
        <snakeyaml.version>${snakeyaml-version}</snakeyaml.version>
        <snappy.version>1.1.7.7</snappy.version><!-- Spark -->
        <threetenbp.version>1.4.0</threetenbp.version>
        <xalan.version>${xalan-version}</xalan.version>
        <xchange.version>${xchange-version}</xchange.version>
        <xerces.version>${xerces-version}</xerces.version>
        <xmlgraphics-commons.version>2.3</xmlgraphics-commons.version><!-- mess in FOP transitive deps -->
        <xstream.version>${xstream-version}</xstream.version>
        <web3j.version>${web3j-version}</web3j.version>
        <web3j.quorum.version>${web3j-quorum-version}</web3j.quorum.version>
        <woodstox-core.version>${woodstox-core-version}</woodstox-core.version>
        <zookeeper.version>${solr-zookeeper-version}</zookeeper.version><!-- ${solr-zookeeper-version} is newer than ${zookeeper-version} -->
        <zxing.version>3.3.3</zxing.version><!-- Mess in IOTA transitive deps -->

        <!-- Test dependency versions (keep sorted alphabetically) -->
        <commons-logging.version>1.2</commons-logging.version><!-- Mess in the transitive dependencies of hbase-testing-util -->
        <consul-client.version>${consul-client-version}</consul-client.version>
        <ftpserver.version>1.1.1</ftpserver.version>
        <istack-commons-runtime.version>3.0.10</istack-commons-runtime.version>
        <jakarta.mail.version>${jakarta-mail-version}</jakarta.mail.version>
        <htmlunit-driver.version>2.47.1</htmlunit-driver.version>
        <mock-javamail.version>${mock-javamail-version}</mock-javamail.version>
        <pdfbox.version>${pdfbox-version}</pdfbox.version>
        <slf4j-log4j12.version>1.7.30</slf4j-log4j12.version><!-- Mess in the transitive dependencies of hbase-testing-util -->
        <sshd.version>${sshd-version}</sshd.version>
        <stax2.version>4.2</stax2.version>
        <wiremock.version>2.27.2</wiremock.version>
        <zt-exec.version>1.11</zt-exec.version>

        <!-- Maven plugin versions (keep sorted alphabetically) -->
        <cq-plugin.version>0.36.0</cq-plugin.version>
        <build-helper-maven-plugin.version>3.1.0</build-helper-maven-plugin.version>
        <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
        <formatter-maven-plugin.version>2.11.0</formatter-maven-plugin.version>
        <frontend-maven-plugin.version>1.6</frontend-maven-plugin.version>
        <groovy-maven-plugin.version>2.1.1</groovy-maven-plugin.version>
        <groovy.version>3.0.8</groovy.version>
        <impsort-maven-plugin.version>1.3.2</impsort-maven-plugin.version>
        <jandex-maven-plugin.version>1.0.8</jandex-maven-plugin.version>
        <mycila-license.version>3.0</mycila-license.version>
        <maven-assembly-plugin.version>3.1.1</maven-assembly-plugin.version>
        <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
        <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
        <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
        <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
        <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
        <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
        <maven-plugin-plugin.version>3.6.1</maven-plugin-plugin.version>
        <maven-source-plugin.version>3.1.0</maven-source-plugin.version>
        <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
        <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
        <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version>
        <!-- NOTE: We pin to this version due to https://github.com/apache/camel-quarkus/issues/723 -->
        <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
        <properties-maven-plugin.version>1.0.0</properties-maven-plugin.version>
        <rpkgtests-maven-plugin.version>0.10.0</rpkgtests-maven-plugin.version>

        <!-- Plugin configuration through properties  -->

        <!-- maven-resources-plugin -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- maven-compiler-plugin -->
        <maven.compiler.target>11</maven.compiler.target>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.testTarget>${maven.compiler.target}</maven.compiler.testTarget>
        <maven.compiler.testSource>${maven.compiler.source}</maven.compiler.testSource>

        <!-- maven-enforcer-plugin -->
        <min-maven-version>3.6.2</min-maven-version>
        <target-maven-version>3.8.1</target-maven-version><!-- @sync io.quarkus:quarkus-build-parent:${quarkus.version} prop:proposed-maven-version -->
        <supported-maven-versions>[${min-maven-version},)</supported-maven-versions>

        <!-- maven-release-plugin -->
        <tagNameFormat>@{project.version}</tagNameFormat>
    </properties>

    <modules>
        <module>poms</module>
        <module>tooling</module>
        <module>extensions-core</module>
        <module>extensions-support</module>
        <module>extensions</module>
        <module>extensions-jvm</module>
        <module>catalog</module>
        <module>integration-tests-support</module>
        <module>integration-tests</module>
        <module>integration-test-groups</module>
        <module>docs</module>
    </modules>

    <developers>
        <developer>
            <name>The Apache Camel Team</name>
            <email>dev@camel.apache.org</email>
            <url>http://camel.apache.org</url>
            <organization>Apache Software Foundation</organization>
            <organizationUrl>http://apache.org/</organizationUrl>
            <properties>
                <picUrl>http://camel.apache.org/banner.data/apache-camel-7.png</picUrl>
            </properties>
        </developer>
    </developers>

    <mailingLists>
        <mailingList>
            <name>Development List</name>
            <subscribe>dev-subscribe@camel.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@camel.apache.org</unsubscribe>
            <post>dev@camel.apache.org</post>
        </mailingList>
        <mailingList>
            <name>User List</name>
            <subscribe>users-subscribe@camel.apache.org</subscribe>
            <unsubscribe>users-unsubscribe@camel.apache.org</unsubscribe>
            <post>users@camel.apache.org</post>
        </mailingList>
        <mailingList>
            <name>Commits List</name>
            <subscribe>commits-subscribe@camel.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@camel.apache.org</unsubscribe>
            <post>commits@camel.apache.org</post>
        </mailingList>
    </mailingLists>

    <scm>
        <connection>scm:git:http://gitbox.apache.org/repos/asf/camel-quarkus.git</connection>
        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/camel-quarkus.git</developerConnection>
        <url>https://gitbox.apache.org/repos/asf?p=camel-quarkus.git;a=summary</url>
        <tag>HEAD</tag>
    </scm>

    <issueManagement>
        <system>GitHub</system>
        <url>https://github.com/apache/camel-quarkus/issues</url>
    </issueManagement>

    <repositories>
        <repository>
            <id>apache.snapshots</id>
            <url>https://repository.apache.org/snapshots/</url>
            <name>Apache Snapshot Repo</name>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <url>https://repository.apache.org/snapshots/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <pluginManagement>
            <plugins>
                <!-- Only plugins relevant to both end user applications and Camel Quarkus extensions -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven-compiler-plugin.version}</version>
                    <configuration>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>true</showWarnings>
                        <compilerArgs>
                            <arg>-Xlint:unchecked</arg>
                        </compilerArgs>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${maven-deploy-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven-javadoc-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>${maven-plugin-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${maven-release-plugin.version}</version>
                    <configuration>
                        <!-- release:prepare config -->
                        <preparationGoals>clean package</preparationGoals>
                        <waitBeforeTagging>10</waitBeforeTagging>
                        <!-- release:perform config -->
                        <useReleaseProfile>true</useReleaseProfile>
                        <releaseProfiles>apache-release</releaseProfiles>
                        <goals>deploy</goals>
                        <!-- Both release:prepare and release:perform config -->
                        <arguments>-DskipTests -Denforcer.skip -Dquarkus.build.skip -Dformatter.skip -Dimpsort.skip</arguments>
                    </configuration>
                </plugin>

                <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-resources-plugin</artifactId>
                  <version>${maven-resources-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${maven-shade-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                    <configuration>
                        <failIfNoTests>false</failIfNoTests>
                        <systemProperties>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                        </systemProperties>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${maven-enforcer-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-maven-plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-maven-plugin</artifactId>
                    <version>${quarkus.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.l2x6.cq</groupId>
                    <artifactId>cq-maven-plugin</artifactId>
                    <version>${cq-plugin.version}</version>
                    <configuration>
                        <extensionDirectories>
                            <extensionDirectory>${project.basedir}/extensions-core</extensionDirectory>
                            <extensionDirectory>${project.basedir}/extensions</extensionDirectory>
                            <extensionDirectory>${project.basedir}/extensions-jvm</extensionDirectory>
                        </extensionDirectories>
                        <skipArtifactIdBases>
                            <skipArtifactIdBase>http-common</skipArtifactIdBase>
                            <skipArtifactIdBase>integration-test-support-custom-log-component</skipArtifactIdBase>
                            <skipArtifactIdBase>integration-test-support-custom-main-listener</skipArtifactIdBase>
                            <skipArtifactIdBase>integration-test-support-custom-routes-collector</skipArtifactIdBase>
                            <skipArtifactIdBase>integration-test-support-custom-type-converter</skipArtifactIdBase>
                        </skipArtifactIdBases>
                    </configuration>
                    <dependencies>
                        <!-- include camel-catalog on classpath -->
                        <dependency>
                            <groupId>org.apache.camel</groupId>
                            <artifactId>camel-catalog</artifactId>
                            <version>${camel.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <version>${groovy-maven-plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.groovy</groupId>
                            <artifactId>groovy-all</artifactId>
                            <version>${groovy.version}</version>
                            <type>pom</type>
                            <exclusions>
                                <exclusion>
                                    <!-- groovy-testng depends on testng 7.2.0 wich is not on maven central -->
                                    <groupId>org.codehaus.groovy</groupId>
                                    <artifactId>groovy-testng</artifactId>
                                </exclusion>
                            </exclusions>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${maven-jar-plugin.version}</version>
                </plugin>

                <!-- license-maven-plugin is not necessarily relevant for user applications.
                     It is managed here so that we can have its config defined on a single place.
                     It is executed from profiles only -->
                <plugin>
                    <groupId>com.mycila</groupId>
                    <artifactId>license-maven-plugin</artifactId>
                    <version>${mycila-license.version}</version>
                    <configuration>
                        <failIfUnknown>true</failIfUnknown>
                        <header>header.txt</header>
                        <excludes>
                            <exclude>**/*.adoc</exclude>
                            <exclude>**/*.adm</exclude>
                            <exclude>**/*.avsc</exclude>
                            <exclude>**/*.avpr</exclude>
                            <exclude>**/*.bin</exclude>
                            <exclude>**/*.cnf</exclude>
                            <exclude>**/*.conf</exclude>
                            <exclude>**/*.csv</exclude>
                            <exclude>**/*.der</exclude>
                            <exclude>**/*.ftl</exclude>
                            <exclude>**/*.graphql</exclude>
                            <exclude>**/*.ics</exclude>
                            <exclude>**/*.jks</exclude>
                            <exclude>**/*.kts</exclude>
                            <exclude>**/*.lock</exclude>
                            <exclude>**/*.mp3</exclude>
                            <exclude>**/*.mp4</exclude>
                            <exclude>**/*.mvel</exclude>
                            <exclude>**/*.p12</exclude>
                            <exclude>**/*.pem</exclude>
                            <exclude>**/*.pgp</exclude>
                            <exclude>**/*.proto</exclude>
                            <exclude>**/*.spec</exclude>
                            <exclude>**/*.txt</exclude>
                            <exclude>**/*.xquery</exclude>
                            <exclude>**/.factorypath</exclude>
                            <exclude>**/.pnp.js</exclude>
                            <exclude>**/.yarnrc.yml</exclude>
                            <exclude>**/LICENSE.txt</exclude>
                            <exclude>**/LICENSE</exclude>
                            <exclude>**/META-INF/persistence*.xsd</exclude>
                            <exclude>**/NOTICE.txt</exclude>
                            <exclude>**/NOTICE</exclude>
                            <exclude>**/README</exclude>
                            <exclude>**/.yarn/**</exclude>
                            <exclude>**/cacerts</exclude>
                            <exclude>**/camel-quarkus-test-list.xml</exclude>
                            <exclude>**/node_modules/**</exclude>
                            <exclude>**/pom.xml.versionsBackup</exclude>
                            <exclude>.mvn/**</exclude>
                            <exclude>KEYS</exclude>
                            <exclude>doap.rdf</exclude>
                            <exclude>ide-config/**</exclude>
                            <exclude>id_file</exclude>
                            <exclude>mvnw*</exclude>
                            <exclude>node/**</exclude>
                            <exclude>**/resources/routes.1</exclude>
                            <exclude>**/resources/routes.2</exclude>
                            <exclude>**/generated/**</exclude>
                            <exclude>.envrc</exclude>
                            <exclude>**/.idea/**</exclude>
                            <exclude>**/k8s-sb/**</exclude>
                        </excludes>
                        <mapping>
                            <groovy>SLASHSTAR_STYLE</groovy>
                            <java>SLASHSTAR_STYLE</java>
                            <Jenkinsfile>SLASHSTAR_STYLE</Jenkinsfile>
                            <Jenkinsfile.quarkus>SLASHSTAR_STYLE</Jenkinsfile.quarkus>
                            <properties>CAMEL_PROPERTIES_STYLE</properties>
                            <rnc>SCRIPT_STYLE</rnc>
                            <ini>SCRIPT_STYLE</ini>
                            <rng>XML_STYLE</rng>
                            <spring.factories>CAMEL_PROPERTIES_STYLE</spring.factories>
                            <spring.provides>CAMEL_PROPERTIES_STYLE</spring.provides>
                            <tm>CAMEL_PROPERTIES_STYLE</tm>
                            <kt>SLASHSTAR_STYLE</kt>
                            <wsdl>XML_STYLE</wsdl>
                        </mapping>
                        <headerDefinitions>
                            <headerDefinition>license-properties-headerdefinition.xml</headerDefinition>
                        </headerDefinitions>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.camel</groupId>
                            <artifactId>camel-buildtools</artifactId>
                            <version>${camel.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.l2x6.cq</groupId>
                <artifactId>cq-maven-plugin</artifactId>
                <inherited>false</inherited>
                <!-- Settings for stubbing new extensions. E.g. to add a new extension to support an imaginary
                     Camel Foo ABC component, you would run

                       mvn cq:create -N -Dcq.artifactIdBase=foo-abc

                -->
                <configuration>
                    <templatesUriBase>file:///${project.basedir}/tooling/create-extension-templates</templatesUriBase>
                    <extensionDirs>
                        <extensionDir>
                            <path>extensions</path>
                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                        </extensionDir>
                        <extensionDir>
                            <path>extensions-core</path>
                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                        </extensionDir>
                        <extensionDir>
                            <path>extensions-jvm</path>
                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                        </extensionDir>
                        <extensionDir>
                            <path>extensions-support</path>
                            <artifactIdPrefix>camel-quarkus-support-</artifactIdPrefix>
                        </extensionDir>
                        <extensionDir>
                            <path>integration-tests-support</path>
                            <artifactIdPrefix>camel-quarkus-integration-test-support-</artifactIdPrefix>
                        </extensionDir>
                    </extensionDirs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-maven-version</id>
                        <!-- enforce-maven-version is defined in org.apache:apache -->
                        <!-- we skip for the whole Camel Quarkus tree because we have -->
                        <!-- an analogous check in camel-quarkus-enforcer-rules -->
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-test</id>
                        <phase /><!-- unbound here to speedup -Dquickly build; bound to a phase in camel-quarkus-build-parent-it -->
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-descriptor</id>
                        <phase /><!-- skip to save time -->
                    </execution>
                </executions>
            </plugin>

        </plugins>

    </build>

    <profiles>
        <profile>
            <!-- Pass '-Dquickly' to skip enforcer and some further sanity checks -->
            <id>full</id>
            <activation>
                <property>
                    <name>!quickly</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>camel-quarkus-enforcer-rules</id>
                                <goals>
                                    <goal>enforce</goal>
                                </goals>
                                <configuration>
                                    <rules>
                                        <requireJavaVersion>
                                            <version>11</version>
                                        </requireJavaVersion>
                                        <dependencyConvergence />
                                        <requireMavenVersion>
                                            <version>${supported-maven-versions}</version>
                                        </requireMavenVersion>
                                    </rules>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.gmaven</groupId>
                        <artifactId>groovy-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>validate-github-workflows</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <phase>process-resources</phase>
                                <configuration>
                                    <source>file:///${project.basedir}/tooling/scripts/validate-github-workflows.groovy</source>
                                </configuration>
                            </execution>
                            <execution>
                                <id>validate-extension-metadata</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <phase>verify</phase>
                                <configuration>
                                    <source>file:///${project.basedir}/tooling/scripts/validate-extension-metadata.groovy</source>
                                    <properties>
                                        <extensionDirs>extensions-core,extensions-support,extensions</extensionDirs>
                                    </properties>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.yaml</groupId>
                                <artifactId>snakeyaml</artifactId>
                                <version>${snakeyaml.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>linux</id>
            <activation>
                <os>
                    <name>Linux</name>
                </os>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <systemProperties>
                                <java.security.egd>file:/dev/./urandom</java.security.egd>
                            </systemProperties>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>format</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.mycila</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>license-format</id>
                                <goals>
                                    <goal>format</goal>
                                </goals>
                                <phase>validate</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.l2x6.cq</groupId>
                        <artifactId>cq-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sort-poms</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>format</goal>
                                    <goal>update-quarkus-metadata</goal>
                                </goals>
                                <phase>process-resources</phase>
                                <configuration>
                                    <sortModulesPaths>
                                        <sortModulesPath>extensions/pom.xml</sortModulesPath>
                                        <sortModulesPath>extensions-jvm/pom.xml</sortModulesPath>
                                        <sortModulesPath>integration-tests/pom.xml</sortModulesPath>
                                        <sortModulesPath>integration-test-groups/pom.xml</sortModulesPath>
                                        <sortModulesPath>integration-test-groups/aws2/pom.xml</sortModulesPath>
                                        <sortModulesPath>integration-test-groups/azure/pom.xml</sortModulesPath>
                                        <sortModulesPath>integration-test-groups/foundation/pom.xml</sortModulesPath>
                                    </sortModulesPaths>
                                    <sortDependencyManagementPaths>
                                        <sortDependencyManagementPath>poms/bom/pom.xml</sortDependencyManagementPath>
                                    </sortDependencyManagementPaths>
                                    <updateVirtualDependencies>
                                        <updateVirtualDependency>
                                            <basedir>${project.basedir}</basedir>
                                            <includes>
                                                <include>extensions-jvm/*/integration-test/pom.xml</include>
                                                <include>integration-tests/*/pom.xml</include>
                                                <include>integration-test-groups/*/*/pom.xml</include>
                                            </includes>
                                        </updateVirtualDependency>
                                    </updateVirtualDependencies>
                                    <updateVirtualDependenciesAllExtensions>
                                        <updateVirtualDependenciesAllExtension>
                                            <basedir>${project.basedir}</basedir>
                                            <includes>
                                                <include>catalog/pom.xml</include>
                                            </includes>
                                        </updateVirtualDependenciesAllExtension>
                                    </updateVirtualDependenciesAllExtensions>
                                    <extensionDirs>
                                        <extensionDir>
                                            <path>extensions</path>
                                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                                        </extensionDir>
                                        <extensionDir>
                                            <path>extensions-core</path>
                                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                                        </extensionDir>
                                        <extensionDir>
                                            <path>extensions-jvm</path>
                                            <artifactIdPrefix>camel-quarkus-</artifactIdPrefix>
                                        </extensionDir>
                                        <extensionDir>
                                            <path>extensions-support</path>
                                            <artifactIdPrefix>camel-quarkus-support-</artifactIdPrefix>
                                        </extensionDir>
                                        <extensionDir>
                                            <path>integration-tests-support</path>
                                            <artifactIdPrefix>camel-quarkus-integration-test-support-</artifactIdPrefix>
                                        </extensionDir>
                                    </extensionDirs>
                                    <removeEmptyApplicationProperties>
                                        <directory>${basedir}</directory>
                                        <includes>
                                            <include>integration-tests/*/src/main/resources/application.properties</include>
                                            <include>integration-test-groups/*/*/src/main/resources/application.properties</include>
                                        </includes>
                                    </removeEmptyApplicationProperties>
                                    <mergePoms>
                                        <mergePom>
                                            <sourcePoms>
                                                <directory>${basedir}/integration-test-groups/aws2</directory>
                                                <includes>
                                                    <include>*/pom.xml</include>
                                                </includes>
                                            </sourcePoms>
                                            <destinationPom>${basedir}/integration-tests/aws2-grouped/pom.xml</destinationPom>
                                        </mergePom>
                                        <mergePom>
                                            <sourcePoms>
                                                <directory>${basedir}/integration-test-groups/azure</directory>
                                                <includes>
                                                    <include>*/pom.xml</include>
                                                </includes>
                                            </sourcePoms>
                                            <destinationPom>${basedir}/integration-tests/azure-grouped/pom.xml</destinationPom>
                                        </mergePom>
                                        <mergePom>
                                            <sourcePoms>
                                                <directory>${basedir}/integration-test-groups/foundation</directory>
                                                <includes>
                                                    <include>*/pom.xml</include>
                                                </includes>
                                            </sourcePoms>
                                            <destinationPom>${basedir}/integration-tests/foundation-grouped/pom.xml</destinationPom>
                                        </mergePom>
                                    </mergePoms>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>check-format</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.mycila</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>license-format</id>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <phase>validate</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>camel-quarkus-enforcer-rules</id>
                                <phase /><!-- Speedup the check-format profile by skipping the enforcer  -->
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>apache-release</id>
            <activation>
                <property>
                    <name>apache-release</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>${maven-assembly-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase /><!-- fix https://github.com/apache/camel-quarkus/issues/844 -->
                            </execution>
                            <execution>
                                <id>camel-quarkus-source-release-assembly</id>
                                <phase>package</phase>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <descriptors>
                                        <descriptor>tooling/descriptors/src.xml</descriptor>
                                    </descriptors>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- We want to deploy the artifact to a staging location for perusal -->
                    <plugin>
                        <inherited>true</inherited>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>${maven-deploy-plugin.version}</version>
                        <configuration>
                            <updateReleaseInfo>true</updateReleaseInfo>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>${maven-source-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <additionalOptions>${javadoc.opts}</additionalOptions>
                            <detectOfflineLinks>false</detectOfflineLinks>
                        </configuration>
                    </plugin>
                    <!-- We want to sign the artifact, the POM, and all attached artifacts -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven-gpg-plugin.version}</version>
                        <configuration>
                            <passphrase>${gpg.passphrase}</passphrase>
                            <useAgent>${gpg.useagent}</useAgent>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign-release-artifacts</id>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>deploy</id>
            <activation>
                <property>
                    <name>deploy</name>
                </property>
            </activation>
            <build>
                <defaultGoal>deploy</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                                <configuration>
                                    <additionalOptions>${javadoc.opts}</additionalOptions>
                                    <detectOfflineLinks>false</detectOfflineLinks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>doclint-java8-disable</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <properties>
                <javadoc.opts>-Xdoclint:none</javadoc.opts>
            </properties>
        </profile>

        <profile>
            <id>docker</id>
            <activation>
                <property>
                    <name>docker</name>
                </property>
            </activation>
            <properties>
                <quarkus.native.container-build>true</quarkus.native.container-build>
                <quarkus.native.container-runtime>docker</quarkus.native.container-runtime>
            </properties>
        </profile>

        <profile>
            <id>apache-snapshots</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>apache.snapshots</id>
                    <url>https://repository.apache.org/snapshots/</url>
                    <name>Apache Snapshot Repo</name>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>apache.snapshots</id>
                    <url>https://repository.apache.org/snapshots/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                </pluginRepository>
            </pluginRepositories>
        </profile>

        <profile>
            <id>oss-snapshots</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <repositories>
                <repository>
                    <id>oss-snapshots-repo</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>oss-snapshots-repo</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>

        <profile>
            <id>build-notification</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.gmaven</groupId>
                        <artifactId>groovy-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>build-notify</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <phase>verify</phase>
                                <configuration>
                                    <source>file:///${project.basedir}/tooling/scripts/report-build-status.groovy</source>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.kohsuke</groupId>
                                <artifactId>github-api</artifactId>
                                <version>${github-api.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
