druid
Used in: 
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
    <groupId>org.apache.druid</groupId>
    <artifactId>druid</artifactId>
    <version>34.0.0</version>
</dependency><?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>25</version>
    </parent>
    <groupId>org.apache.druid</groupId>
    <artifactId>druid</artifactId>
    <version>34.0.0</version>
    <packaging>pom</packaging>
    <name>Druid</name>
    <description>Druid - A Distributed Column Store</description>
    <url>https://druid.apache.org/</url>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <name>Apache Druid Committers</name>
            <url>https://druid.apache.org/community/#committers</url>
        </developer>
    </developers>
    <mailingLists>
        <mailingList>
            <name>Apache Druid developers list</name>
            <subscribe>dev-subscribe@druid.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@druid.apache.org</unsubscribe>
            <post>dev@druid.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/druid-dev</archive>
        </mailingList>
    </mailingLists>
    <inceptionYear>2011</inceptionYear>
    <scm>
        <connection>scm:git:ssh://git@github.com/apache/druid.git</connection>
        <developerConnection>scm:git:ssh://git@github.com/apache/druid.git</developerConnection>
        <url>https://github.com/apache/druid.git</url>
        <tag>druid-34.0.0-rc2</tag>
    </scm>
    <properties>
        <java.version>11</java.version>
        <maven.compiler.release>${java.version}</maven.compiler.release>
        <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
        <aether.version>0.9.0.M2</aether.version>
        <apache.curator.version>5.8.0</apache.curator.version>
        <apache.kafka.version>3.9.1</apache.kafka.version>
        <!-- when updating apache ranger, verify the usage of aws-bundle-sdk vs aws-logs-sdk
        and update as needed in extensions-core/druid-ranger-security/pm.xml  -->
        <apache.ranger.version>2.4.0</apache.ranger.version>
        <gson.version>2.10.1</gson.version>
        <scala.library.version>2.13.14</scala.library.version>
        <avatica.version>1.25.0</avatica.version>
        <avro.version>1.11.4</avro.version>
        <!--
            The base calcite parser was copied into the project; when updating Calcite run dev/upgrade-calcite-parser to adopt upstream changes
          -->
        <calcite.version>1.37.0</calcite.version>
        <confluent.version>6.2.15</confluent.version>
        <cronutils.version>9.2.0</cronutils.version>
        <datasketches.version>4.2.0</datasketches.version>
        <datasketches.memory.version>2.2.0</datasketches.memory.version>
        <derby.version>10.14.2.0</derby.version>
        <dropwizard.metrics.version>4.2.22</dropwizard.metrics.version>
        <errorprone.version>2.35.1</errorprone.version>
        <fastutil.version>8.5.4</fastutil.version>
        <guava.version>32.1.3-jre</guava.version>
        <guice.version>5.1.0</guice.version>
        <hamcrest.version>1.3</hamcrest.version>
        <jetty.version>9.4.57.v20241219</jetty.version>
        <jersey.version>1.19.4</jersey.version>
        <jackson.core.version>2.18.4.1</jackson.core.version>
        <jackson.version>2.18.4</jackson.version>
        <codehaus.jackson.version>1.9.13</codehaus.jackson.version>
        <log4j.version>2.22.1</log4j.version>
        <mysql.version>8.2.0</mysql.version>
        <mariadb.version>2.7.3</mariadb.version>
        <netty3.version>3.10.6.Final</netty3.version>
        <netty4.version>4.1.122.Final</netty4.version>
        <postgresql.version>42.7.2</postgresql.version>
        <protobuf.version>3.25.5</protobuf.version>
        <resilience4j.version>1.3.1</resilience4j.version>
        <slf4j.version>2.0.16</slf4j.version>
        <jna.version>5.13.0</jna.version>
        <jna-platform.version>5.13.0</jna-platform.version>
        <hadoop.compile.version>3.3.6</hadoop.compile.version>
        <graaljs.version>22.3.5</graaljs.version>
        <mockito.version>5.14.2</mockito.version>
        <aws.sdk.version>1.12.784</aws.sdk.version>
        <caffeine.version>2.8.0</caffeine.version>
        <jacoco.version>0.8.12</jacoco.version>
        <testcontainers.version>1.21.3</testcontainers.version>
        <hibernate-validator.version>6.2.5.Final</hibernate-validator.version>
        <httpclient.version>4.5.13</httpclient.version>
        <!-- When upgrading ZK, edit docs and integration tests as well (integration-tests/docker-base/setup.sh) -->
        <zookeeper.version>3.8.4</zookeeper.version>
        <checkerframework.version>3.48.1</checkerframework.version>
        <com.google.apis.client.version>2.2.0</com.google.apis.client.version>
        <com.google.http.client.apis.version>1.42.3</com.google.http.client.apis.version>
        <com.google.apis.compute.version>v1-rev20230606-2.0.0</com.google.apis.compute.version>
        <com.google.cloud.storage.version>2.29.1</com.google.cloud.storage.version>
        <jdk.strong.encapsulation.argLine>
            <!-- Strong encapsulation parameters -->
            <!-- When updating this list, update all four locations: -->
            <!--  1) ForkingTaskRunner#STRONG_ENCAPSULATION_PROPERTIES -->
            <!--  2) docs/operations/java.md, "Strong encapsulation" section -->
            <!--  3) pom.xml, jdk.strong.encapsulation.argLine (here) -->
            <!--  4) examples/bin/run-java script -->
            <!-- required for DataSketches Memory -->
            --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
            --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED
            --add-opens=java.base/java.nio=ALL-UNNAMED
            --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
            --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
            <!-- required for NativeIO#getfd -->
            --add-opens=java.base/java.io=ALL-UNNAMED
            <!-- required for Guice -->
            --add-opens=java.base/java.lang=ALL-UNNAMED
            <!-- required for metrics -->
            --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
            <!-- required for certain EqualsVerifier tests (not required in production) -->
            --add-opens=java.base/java.util=ALL-UNNAMED
        </jdk.strong.encapsulation.argLine>
        <jdk.security.manager.allow.argLine><!-- empty placeholder --></jdk.security.manager.allow.argLine>
        <repoOrgId>maven.org</repoOrgId>
        <repoOrgName>Maven Central Repository</repoOrgName>
        <repoOrgUrl>https://repo.maven.apache.org/maven2/</repoOrgUrl>
        <!-- Allow the handful of flaky tests with transient failures to pass. -->
        <surefire.rerunFailingTestsCount>3</surefire.rerunFailingTestsCount>
        <surefire.trimStackTrace>false</surefire.trimStackTrace>
        <!-- Using -DskipTests or -P skip-tests will skip both the unit tests and
             the "new" integration tests. To skip just the unit tests (but run the
             new integration tests by setting the required profile), use -DskipUTs=true.
             -->
        <skipTests>false</skipTests>
        <skipUTs>${skipTests}</skipUTs>
        <skipITs>${skipTests}</skipITs>
        <!-- NetBeans has a problem when we use late binding with @ in the surefire arg line.
             Therefore we set this empty property here.
             ref: https://github.com/mapstruct/mapstruct/pull/1241
             -->
         <jacocoArgLine />
         <!--  used to enable continuous profiling of jdk17 unit tests in github actions  -->
         <jfrProfilerArgLine />
    </properties>
    <modules>
        <module>processing</module>
        <module>indexing-hadoop</module>
        <module>indexing-service</module>
        <module>server</module>
        <module>sql</module>
        <module>services</module>
        <module>integration-tests</module>
        <module>benchmarks</module>
        <module>web-console</module>
        <!-- Core cloud functionality -->
        <module>cloud/aws-common</module>
        <module>cloud/gcp-common</module>
        <!-- Core extensions -->
        <module>extensions-core/kubernetes-extensions</module>
        <module>extensions-core/kubernetes-overlord-extensions</module>
        <module>extensions-core/avro-extensions</module>
        <module>extensions-core/azure-extensions</module>
        <module>extensions-core/datasketches</module>
        <module>extensions-core/druid-bloom-filter</module>
        <module>extensions-core/druid-kerberos</module>
        <module>extensions-core/druid-pac4j</module>
        <module>extensions-core/hdfs-storage</module>
        <module>extensions-core/histogram</module>
        <module>extensions-core/stats</module>
        <module>extensions-core/kafka-extraction-namespace</module>
        <module>extensions-core/kafka-indexing-service</module>
        <module>extensions-core/kinesis-indexing-service</module>
        <module>extensions-core/multi-stage-query</module>
        <module>extensions-core/mysql-metadata-storage</module>
        <module>extensions-core/orc-extensions</module>
        <module>extensions-core/parquet-extensions</module>
        <module>extensions-core/postgresql-metadata-storage</module>
        <module>extensions-core/protobuf-extensions</module>
        <module>extensions-core/lookups-cached-global</module>
        <module>extensions-core/lookups-cached-single</module>
        <module>extensions-core/ec2-extensions</module>
        <module>extensions-core/s3-extensions</module>
        <module>extensions-core/druid-aws-rds-extensions</module>
        <module>extensions-core/simple-client-sslcontext</module>
        <module>extensions-core/druid-basic-security</module>
        <module>extensions-core/google-extensions</module>
        <module>extensions-core/druid-catalog</module>
        <module>extensions-core/testing-tools</module>
        <!-- Community extensions -->
        <module>extensions-contrib/compressed-bigdecimal</module>
        <module>extensions-contrib/influx-extensions</module>
        <module>extensions-contrib/cassandra-storage</module>
        <module>extensions-contrib/dropwizard-emitter</module>
        <module>extensions-contrib/cloudfiles-extensions</module>
        <module>extensions-contrib/graphite-emitter</module>
        <module>extensions-contrib/distinctcount</module>
        <module>extensions-contrib/statsd-emitter</module>
        <module>extensions-contrib/time-min-max</module>
        <module>extensions-contrib/virtual-columns</module>
        <module>extensions-contrib/thrift-extensions</module>
        <module>extensions-contrib/ambari-metrics-emitter</module>
        <module>extensions-contrib/sqlserver-metadata-storage</module>
        <module>extensions-contrib/kafka-emitter</module>
        <module>extensions-contrib/redis-cache</module>
        <module>extensions-contrib/opentsdb-emitter</module>
        <module>extensions-contrib/materialized-view-maintenance</module>
        <module>extensions-contrib/materialized-view-selection</module>
        <module>extensions-contrib/momentsketch</module>
        <module>extensions-contrib/moving-average-query</module>
        <module>extensions-contrib/tdigestsketch</module>
        <module>extensions-contrib/ddsketch</module>
        <module>extensions-contrib/influxdb-emitter</module>
        <module>extensions-contrib/gce-extensions</module>
        <module>extensions-contrib/aliyun-oss-extensions</module>
        <module>extensions-contrib/prometheus-emitter</module>
        <module>extensions-contrib/opentelemetry-emitter</module>
        <module>extensions-contrib/grpc-query</module>
        <module>extensions-contrib/druid-iceberg-extensions</module>
        <module>extensions-contrib/druid-deltalake-extensions</module>
        <module>extensions-contrib/spectator-histogram</module>
        <module>extensions-contrib/rabbit-stream-indexing-service</module>
        <module>extensions-contrib/druid-ranger-security</module>
        <!-- distribution packaging -->
        <module>distribution</module>
        <!-- Revised integration tests -->
        <module>integration-tests-ex/tools</module>
        <module>integration-tests-ex/image</module>
        <module>integration-tests-ex/cases</module>
        <module>quidem-ut</module>
        <module>embedded-tests</module>
    </modules>
    <repositories>
        <repository>
            <id>${repoOrgId}</id>
            <name>${repoOrgName}</name>
            <url>${repoOrgUrl}</url>
            <snapshots>
               <enabled>false</enabled>
            </snapshots>
        </repository>
        <!-- Only used by core, but moved to root for parallel build dependency resolution -->
        <repository>
            <id>sigar</id>
            <url>https://repository.mulesoft.org/nexus/content/repositories/public</url>
            <snapshots>
               <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>cflt-public</id>
            <url>https://packages.confluent.io/maven/</url>
            <snapshots>
               <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>${repoOrgId}</id>
            <name>${repoOrgName}</name>
            <url>${repoOrgUrl}</url>
            <snapshots>
               <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
    <dependencyManagement>
        <dependencies>
            <!-- Compile Scope -->
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.16.1</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.17.0</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.3.5</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
           <dependency>
               <groupId>commons-net</groupId>
               <artifactId>commons-net</artifactId>
               <version>3.9.0</version>
           </dependency>
          <dependency>
              <groupId>com.github.seancfoley</groupId>
              <artifactId>ipaddress</artifactId>
              <version>5.3.4</version>
          </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.17.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>1.13.1</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-core</artifactId>
                <version>${aws.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-ec2</artifactId>
                <version>${aws.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-s3</artifactId>
                <version>${aws.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-sts</artifactId>
                <version>${aws.sdk.version}</version>
            </dependency>
            <dependency>
                <groupId>com.ning</groupId>
                <artifactId>compress-lzf</artifactId>
                <version>1.0.4</version>
            </dependency>
            <dependency>
                <groupId>com.github.rvesse</groupId>
                <artifactId>airline</artifactId>
                <version>2.8.4</version>
            </dependency>
            <dependency>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
                <version>2.5.2</version>
            </dependency>
            <!-- transitive dependency of testng
            this would be resolved by updating
            testng to 7.8.0 -->
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>1.10.14</version>
            </dependency>
            <!-- transitive dependency of kafka-clients and kubernetes client
            this should get resolved with the update of above depdendencies -->
            <dependency>
                <groupId>org.bitbucket.b_c</groupId>
                <artifactId>jose4j</artifactId>
                <version>0.9.6</version>
            </dependency>
            <!-- transitive dependency of kafka-clientorg.apache.calcite:calcite-testkit
            and kafka-protobuf-provider
            this should get resolved with the update of above depdendencies -->
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib</artifactId>
                <version>1.9.25</version>
            </dependency>
            <!-- Transitive dependency of kubernetes-client-java in kubernetes-extension,
            schema-repo in avro-extensions, and com.google.caliper:caliper in druid-server
            and direct dependency of druid-ranger
              -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <!-- Transitive dependency of kubernetes-client java and docker-java-core
            in kubernetes-extensions and it-integration tests -->
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>1.78.1</version>
            </dependency>
            <!-- Transitive dependency of hive-common in druid-kerberos, druid-ranger-security and
            druid-iceberg-extension  -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>2.10.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-transport-native-epoll</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-classic</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>ch.qos.logback</groupId>
                        <artifactId>logback-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper-jute</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${apache.curator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${apache.curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${apache.curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-x-discovery</artifactId>
                <version>${apache.curator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-core</artifactId>
                <version>${calcite.version}</version>
                <exclusions>
                  <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                  </exclusion>
                  <exclusion>
                      <groupId>net.hydromatic</groupId>
                      <artifactId>aggdesigner-algorithm</artifactId>
                  </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-linq4j</artifactId>
                <version>${calcite.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite.avatica</groupId>
                <artifactId>avatica</artifactId>
                <version>${avatica.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite.avatica</groupId>
                <artifactId>avatica-core</artifactId>
                <version>${avatica.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite.avatica</groupId>
                <artifactId>avatica-metrics</artifactId>
                <version>${avatica.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite.avatica</groupId>
                <artifactId>avatica-server</artifactId>
                <version>${avatica.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-storage-api</artifactId>
                <version>2.8.1</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>listenablefuture</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>${guice.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-servlet</artifactId>
                <version>${guice.version}</version>
            </dependency>
            <dependency>
              <groupId>com.google.inject.extensions</groupId>
              <artifactId>guice-assistedinject</artifactId>
              <version>${guice.version}</version>
              </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>${errorprone.version}</version>
            </dependency>
            <dependency>
                <groupId>com.ibm.icu</groupId>
                <artifactId>icu4j</artifactId>
                <version>73.2</version>
            </dependency>
            <dependency>
                <groupId>org.mozilla</groupId>
                <artifactId>rhino</artifactId>
                <version>1.7.14</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>1.26.0</version>
            </dependency>
            <dependency>
                <groupId>org.tukaani</groupId>
                <artifactId>xz</artifactId>
                <version>1.9</version>
            </dependency>
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>1.5.2-3</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.core.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate-validator.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>2.0.1.Final</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>2.0.2</version>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>1.0.3</version>
            </dependency>
            <dependency>
                <groupId>javax.el</groupId>
                <artifactId>javax.el-api</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>2.3.3</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.el</artifactId>
                <version>3.0.4</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.grizzly</groupId>
                <artifactId>grizzly-http-server</artifactId>
                <version>2.2.16</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>2.3.3</version>
            </dependency>
            <dependency>
                <groupId>org.graalvm.js</groupId>
                <artifactId>js</artifactId>
                <version>${graaljs.version}</version>
            </dependency>
            <dependency>
                <groupId>org.graalvm.js</groupId>
                <artifactId>js-scriptengine</artifactId>
                <version>${graaljs.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jdbi</groupId>
                <artifactId>jdbi</artifactId>
                <version>2.63.1</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-grizzly2</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-guice</artifactId>
                <version>${jersey.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.inject</groupId>
                        <artifactId>guice</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.inject.extensions</groupId>
                        <artifactId>guice-servlet</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-servlet</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-client</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-http</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-io</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-proxy</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-rewrite</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-security</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
                <version>${netty3.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty4.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>2.14.0</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>3.0.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j2-impl</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <!-- This is not slf4j's version because of performance concerns
                http://www.slf4j.org/api/org/slf4j/bridge/SLF4JBridgeHandler.html
                Please make sure to do performance tests before switching this to slf4j
                Users wishing to use slf4j's solution are encouraged to also use
                Logback
                More info at
                http://logback.qos.ch/manual/configuration.html#LevelChangePropagator
                http://www.slf4j.org/legacy.html#jul-to-slf4j
                -->
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-jul</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.lmax</groupId>
                <artifactId>disruptor</artifactId>
                <version>3.3.6</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>elasticache-java-cluster-client</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>4.5.3</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-coordinator</artifactId>
                <version>4.5.3</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.5.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-dbcp2</artifactId>
                <version>2.0.1</version>
            </dependency>
            <dependency>
                <groupId>org.lz4</groupId>
                <artifactId>lz4-java</artifactId>
                <version>1.8.0</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>1.1.10.7</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.version}</version>
            </dependency>
            <dependency>
                <groupId>io.tesla.aether</groupId>
                <artifactId>tesla-aether</artifactId>
                <version>0.0.5</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.aether</groupId>
                <artifactId>aether-api</artifactId>
                <version>${aether.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.aether</groupId>
                <artifactId>aether-util</artifactId>
                <version>${aether.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.4.16</version>
            </dependency>
            <dependency>
                <groupId>org.mapdb</groupId>
                <artifactId>mapdb</artifactId>
                <version>1.0.8</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbynet</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>3.6.1</version>
            </dependency>
            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil</artifactId>
                <version>${fastutil.version}</version>
            </dependency>
            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil-core</artifactId>
                <version>${fastutil.version}</version>
            </dependency>
            <dependency>
                <groupId>com.opencsv</groupId>
                <artifactId>opencsv</artifactId>
                <version>4.6</version>
            </dependency>
            <dependency>
            <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <!-- override the transitive dependency from com.opencsv:opensv:4.6 to version 1.9.3 to address CVE-2014-0114 -->
                <version>1.11.0</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>2.9.0</version>
            </dependency>
            <dependency>
                <groupId>net.thisptr</groupId>
                <artifactId>jackson-jq</artifactId>
                <version>0.0.10</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.roaringbitmap</groupId>
                <artifactId>RoaringBitmap</artifactId>
                <version>0.9.49</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>9.8</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>9.8</version>
            </dependency>
            <dependency>
                <groupId>org.asynchttpclient</groupId>
                <artifactId>async-http-client</artifactId>
                <version>3.0.2</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>${jna.version}</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
                <version>${jna-platform.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>4.2</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${dropwizard.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${codehaus.jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>activation</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-pool</groupId>
                <artifactId>commons-pool</artifactId>
                <version>1.6</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-utils</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-artifact</artifactId>
                <version>3.6.0</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.schemarepo</groupId>
                <artifactId>schema-repo-common</artifactId>
                <version>0.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.api</groupId>
                <artifactId>api-util</artifactId>
                <version>2.1.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.datasketches</groupId>
                <artifactId>datasketches-java</artifactId>
                <version>${datasketches.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.datasketches</groupId>
                <artifactId>datasketches-memory</artifactId>
                <version>${datasketches.memory.version}</version>
            </dependency>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.13.3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-testkit</artifactId>
                <version>${calcite.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>5.2.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.hydromatic</groupId>
                <artifactId>quidem</artifactId>
                <version>0.11</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-bom</artifactId>
                <version>${mockito.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>com.github.docker-java</groupId>
                <artifactId>docker-java-bom</artifactId>
                <version>3.3.4</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.carrotsearch</groupId>
                <artifactId>junit-benchmarks</artifactId>
                <version>0.7.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.caliper</groupId>
                <artifactId>caliper</artifactId>
                <version>0.5-rc1</version>
                <exclusions>
                    <!-- caliper ships a very old asm version which can cause issues during testing  -->
                    <exclusion>
                        <groupId>asm</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${apache.curator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter-api</artifactId>
                    </exclusion>
                </exclusions>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.24.2</version>
                <scope>test</scope>
                <exclusions>
                  <!-- exclude older byte-buddy until assertj-core depends on 1.14+ for Java 21 -->
                  <exclusion>
                    <groupId>net.bytebuddy</groupId>
                    <artifactId>byte-buddy</artifactId>
                  </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.ircclouds.irc</groupId>
                <artifactId>irc-api</artifactId>
                <version>1.0-0014</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.maxmind.geoip2</groupId>
                <artifactId>geoip2</artifactId>
                <version>0.4.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.http-client</groupId>
                        <artifactId>google-http-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.http-client</groupId>
                        <artifactId>google-http-client-jackson2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
           <dependency>
               <groupId>org.postgresql</groupId>
               <artifactId>postgresql</artifactId>
               <version>${postgresql.version}</version>
           </dependency>
            <!-- GCP -->
            <dependency>
                <groupId>com.google.api-client</groupId>
                <artifactId>google-api-client</artifactId>
                <version>${com.google.apis.client.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.http-client</groupId>
                <artifactId>google-http-client</artifactId>
                <version>${com.google.http.client.apis.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.http-client</groupId>
                <artifactId>google-http-client-jackson2</artifactId>
                <version>${com.google.http.client.apis.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.google.j2objc</groupId>
                <artifactId>j2objc-annotations</artifactId>
                <version>2.8</version>
            </dependency>
            <dependency>
                <groupId>io.github.resilience4j</groupId>
                <artifactId>resilience4j-bulkhead</artifactId>
                <version>${resilience4j.version}</version>
            </dependency>
            <!-- GCE -->
            <dependency>
                <groupId>com.google.apis</groupId>
                <artifactId>google-api-services-compute</artifactId>
                <version>${com.google.apis.compute.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>7.3.0</version>
                <!-- testng ships guice 4.2, which requires a newer version of guava -->
                <exclusions>
                    <exclusion>
                        <groupId>com.google.inject</groupId>
                        <artifactId>guice</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>0.9.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>pl.pragmatists</groupId>
                <artifactId>JUnitParams</artifactId>
                <version>1.1.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.inject.extensions</groupId>
                <artifactId>guice-testlib</artifactId>
                <version>${guice.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava-testlib</artifactId>
                <version>${guava.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>nl.jqno.equalsverifier</groupId>
                <artifactId>equalsverifier</artifactId>
                <version>3.15.8</version>
                <scope>test</scope>
            </dependency>
            <dependency>
              <groupId>com.github.stefanbirkner</groupId>
              <artifactId>system-rules</artifactId>
              <version>1.19.0</version>
              <scope>test</scope>
            </dependency>
          <dependency>
            <groupId>io.timeandspace</groupId>
            <artifactId>cron-scheduler</artifactId>
            <version>0.1</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop.compile.version}</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs-client</artifactId>
            <version>${hadoop.compile.version}</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-yarn-common</artifactId>
            <version>${hadoop.compile.version}</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>org.immutables</groupId>
            <artifactId>value-annotations</artifactId>
            <version>2.10.1</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>${hadoop.compile.version}</version>
            <scope>provided</scope>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
              <groupId>org.jruby.joni</groupId>
              <artifactId>joni</artifactId>
              <version>2.1.34</version>
          </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${testcontainers.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>junit-jupiter</artifactId>
                <version>${testcontainers.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${jackson.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-smile-provider</artifactId>
                <version>${jackson.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.openrewrite.maven</groupId>
                <artifactId>rewrite-maven-plugin</artifactId>
                <version>5.42.0</version>
                <configuration>
                    <activeRecipes>
                        <recipe>org.apache.druid.RewriteRules</recipe>
                    </activeRecipes>
                    <configLocation>${maven.multiModuleProjectDirectory}/rewrite.yml</configLocation>
                    <checkstyleDetectionEnabled>false</checkstyleDetectionEnabled>
                    <failOnDryRunResults>true</failOnDryRunResults>
                    <pomCacheEnabled>false</pomCacheEnabled>
                    <skipMavenParsing>true</skipMavenParsing>
                    <exclusions>
                        <exclude>**/*.json</exclude>
                        <exclude>**/*.yaml</exclude>
                    </exclusions>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.openrewrite.recipe</groupId>
                        <artifactId>rewrite-testing-frameworks</artifactId>
                        <version>2.20.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.openrewrite.recipe</groupId>
                        <artifactId>rewrite-apache</artifactId>
                        <version>1.8.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.openrewrite.recipe</groupId>
                        <artifactId>rewrite-jackson</artifactId>
                        <version>0.6.0</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <configuration>
                    <excludes>
                        <!-- Ignore initialization classes, these are tested by the integration tests. -->
                        <exclude>org/apache/druid/cli/Cli*</exclude>
                        <exclude>org/apache/druid/cli/GuiceRunnable.class</exclude>
                        <exclude>org/apache/druid/cli/*JettyServerInitializer*</exclude>
                        <exclude>org/apache/druid/server/initialization/*Module*</exclude>
                        <exclude>org/apache/druid/server/initialization/jetty/*Module*</exclude>
                        <exclude>org/apache/druid/guice/http/*</exclude>
                        <!-- Ignore cli tools -->
                        <exclude>org/apache/druid/cli/UpdateTables*</exclude>
                        <!-- Ignore generated code -->
                        <exclude>org/apache/druid/math/expr/antlr/Expr*</exclude>  <!-- core -->
                        <exclude>org/apache/druid/**/generated/*Benchmark*</exclude>  <!-- benchmarks -->
                        <exclude>org/apache/druid/data/input/influx/InfluxLineProtocol*</exclude>  <!-- extensions-contrib/influx-extensions -->
                        <!-- Ignore non-production code -->
                        <exclude>org/apache/druid/benchmark/**/*</exclude>  <!-- benchmarks -->
                        <exclude>org/apache/druid/**/*Benchmark*</exclude>  <!-- benchmarks -->
                        <exclude>org/apache/druid/testing/**/*</exclude>  <!-- integration-tests -->
                        <!-- The "new" ITs put the test classes into the above testing package. However,
                             the "old" version has them sprinked through the module tree. Remove the following
                             once the old version is retired. -->
                        <exclude>org/apache/druid/server/coordination/ServerManagerForQueryErrorTest.class</exclude>
                        <exclude>org/apache/druid/guice/SleepModule.class</exclude>
                        <exclude>org/apache/druid/guice/CustomNodeRoleClientModule.class</exclude>
                        <exclude>org/apache/druid/cli/CustomNodeRoleCommandCreator.class</exclude>
                        <exclude>org/apache/druid/cli/QueryRetryTestCommandCreator.class</exclude>
                        <!-- Exceptions -->
                        <exclude>org/apache/druid/query/TruncatedResponseContextException.class</exclude>
                        <exclude>org/apache/druid/common/aws/AWSCredentials*</exclude>
                        <exclude>com/fasterxml/jackson/databind/*</exclude>
                    </excludes>
                    <!-- fileSets specify the target locations which will be scanned by jacoco:merge -->
                    <fileSets>
                        <fileSet>
                            <directory>${project.basedir}</directory>
                            <includes>
                                <include>**/target/jacoco*.exec</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </configuration>
                <executions>
                    <execution>
                        <id>prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <propertyName>jacocoArgLine</propertyName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <sourceDirectories>
                        <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                    </sourceDirectories>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    <configLocation>codestyle/checkstyle.xml</configLocation>
                    <suppressionsLocation>codestyle/checkstyle-suppressions.xml</suppressionsLocation>
                    <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
                    <encoding>UTF-8</encoding>
                    <headerLocation>codestyle/LICENSE.txt</headerLocation>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <excludes>
                        *com/fasterxml/jackson/databind/*
                    </excludes>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>8.21</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>4.8.6.6</version>
                <dependencies>
                    <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
                    <dependency>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs</artifactId>
                        <version>4.8.6</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <excludeFilterFile>codestyle/spotbugs-exclude.xml</excludeFilterFile>
                    <maxHeap>768</maxHeap>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.26.0</version>
                <configuration>
                    <linkXRef>false</linkXRef> <!-- prevent "Unable to locate Source XRef to link to" warning -->
                    <printFailingErrors>true</printFailingErrors>
                    <rulesets>
                        <ruleset>${project.parent.basedir}/codestyle/pmd-ruleset.xml</ruleset>
                    </rulesets>
                    <excludeRoots>
                        <excludeRoot>target/generated-sources/</excludeRoot>
                    </excludeRoots>
                    <targetJdk>${maven.compiler.release}</targetJdk>
                </configuration>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>de.thetaphi</groupId>
                <artifactId>forbiddenapis</artifactId>
                <version>3.2</version>
                <configuration>
                    <ignoreSignaturesOfMissingClasses>true</ignoreSignaturesOfMissingClasses>
                    <bundledSignatures>
                        <!--
                          This will automatically choose the right
                          signatures based on 'maven.compiler.release':
                        -->
                        <bundledSignature>jdk-unsafe</bundledSignature>
                    </bundledSignatures>
                    <signaturesFiles>
                        <signaturesFile>${project.parent.basedir}/codestyle/joda-time-forbidden-apis.txt</signaturesFile>
                        <signaturesFile>${project.parent.basedir}/codestyle/druid-forbidden-apis.txt</signaturesFile>
                    </signaturesFiles>
                    <excludes>
                      <exclude>**/SomeAvroDatum.class</exclude>
                      <exclude>**/DruidSqlParserImpl.class</exclude>
                      <exclude>**/DruidSqlParserImplTokenManager.class</exclude>
                      <exclude>**/SimpleCharStream.class</exclude>
                    </excludes>
                    <suppressAnnotations>
                        <annotation>**.SuppressForbidden</annotation>
                    </suppressAnnotations>
                </configuration>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <bundledSignatures>
                                <!-- Check jdk-system-out only for production code, but not in test code -->
                                <bundledSignature>jdk-unsafe</bundledSignature>
                                <bundledSignature>jdk-system-out</bundledSignature>
                            </bundledSignatures>
                        </configuration>
                    </execution>
                    <execution>
                        <id>testCompile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>testCheck</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>animal-sniffer-maven-plugin</artifactId>
                <version>1.23</version>
                <executions>
                    <execution>
                        <id>check-java-api</id>
                        <phase>test</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <!-- checks for ${java.version}, TODO: replace this plugin with release flag with javac, see https://openjdk.org/jeps/247  -->
                            <ignores>
                                <!-- Some of our code uses sun.* classes directly, which are not part of
                                     the JDK signature (although they are there anyway). -->
                                <ignore>sun.nio.ch.DirectBuffer</ignore>
                                <ignore>sun.misc.Cleaner</ignore>
                                <ignore>sun.misc.Unsafe</ignore>
                                <!-- ignore java reflection polymorphic api signatures -->
                                <ignore>java.lang.invoke.MethodHandle</ignore>
                                <!-- For ignoring java.lang.ClassLoader#getPlatformClassLoader since that's present in java 9+.
                                Need to be added since animal sniffer is using JDK8 signature currently. -->
                                <ignore>java.lang.ClassLoader</ignore>
                                <!--
                                 For the following java.nio.* classes, we get errors like: "Undefined reference: java.nio.ByteBuffer java.nio.ByteBuffer.clear()"
                                 GitHub issue: https://github.com/mojohaus/animal-sniffer/issues/4
                                 -->
                                <ignore>java.nio.ByteBuffer</ignore>
                                <ignore>java.nio.IntBuffer</ignore>
                                <ignore>java.nio.CharBuffer</ignore>
                                <ignore>java.nio.FloatBuffer</ignore>
                                <ignore>java.nio.DoubleBuffer</ignore>
                                <ignore>java.nio.MappedByteBuffer</ignore>
                            </ignores>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-cli</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <banDuplicatePomDependencyVersions />
                                <requireMavenVersion>
                                    <version>3.0.0</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>1.8.0</version>
                                </requireJavaVersion>
                                <bannedDependencies>
                                    <excludes>
                                        <!--LGPL licenced library-->
                                        <exclude>com.google.code.findbugs:annotations</exclude>
                                        <!-- shouldn't be loaded alongside with log4j-slf4j2-impl -->
                                        <exclude>org.apache.logging.log4j:log4j-slf4j-impl</exclude>
                                        <!-- See https://github.com/apache/druid/pull/17370 -->
                                        <exclude>javax.xml.bind:jaxb-api</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk>
                            <Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS>
                            <Build-Timestamp>${git.build.time}</Build-Timestamp>
                            <Build-Version>${git.build.version}</Build-Version>
                            <Build-Revision>${git.commit.id}</Build-Revision>
                            <Build-Revision-Describe>${git.commit.id.describe}</Build-Revision-Describe>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.github.git-commit-id</groupId>
                <artifactId>git-commit-id-maven-plugin</artifactId>
                <version>9.0.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                    <dateFormatTimeZone>Etc/UTC</dateFormatTimeZone>
                    <skipPoms>false</skipPoms>
                    <format>json</format>
                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
                    <generateGitPropertiesFilename>${project.build.directory}/git.version</generateGitPropertiesFilename>
                    <failOnNoGitDirectory>false</failOnNoGitDirectory>
                    <useNativeGit>true</useNativeGit>
                    <excludeProperties>
                        <excludeProperty>git.build.user.email</excludeProperty>
                        <excludeProperty>git.build.host</excludeProperty>
                        <excludeProperty>git.commit.id.describe-short</excludeProperty>
                        <excludeProperty>git.commit.user.*</excludeProperty>
                        <excludeProperty>git.commit.message.*</excludeProperty>
                        <excludeProperty>git.closest.tag.*</excludeProperty>
                        <excludeProperty>git.commit.id.abbrev</excludeProperty>
                        <excludeProperty>git.dirty</excludeProperty>
                    </excludeProperties>
                    <gitDescribe>
                        <skip>false</skip>
                        <always>true</always>
                        <abbrev>7</abbrev>
                        <dirty>-dirty</dirty>
                        <forceLongFormat>true</forceLongFormat>
                    </gitDescribe>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>process-resource-bundles</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <properties>
                                <projectName>Apache Druid</projectName>
                            </properties>
                            <resourceBundles>
                                <resourceBundle>org.apache.apache.resources:apache-jar-resource-bundle:1.5</resourceBundle>
                            </resourceBundles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
                <version>7.4.4</version>
                <configuration>
                    <failBuildOnCVSS>7</failBuildOnCVSS>
                    <skipProvidedScope>true</skipProvidedScope>
                    <skipSystemScope>true</skipSystemScope>  <!-- avoid error when processing jdk.tools:jdk.tools:jar:1.8:system -->
                    <!-- For node analysis info, see https://github.com/jeremylong/DependencyCheck/issues/2482#issuecomment-603755623 -->
                    <nodeAnalyzerEnabled>false</nodeAnalyzerEnabled>  <!-- plugin author (jeremylong) recommends to disable, since this analyzer is retired -->
                    <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
                    <nodeAuditSkipDevDependencies>true</nodeAuditSkipDevDependencies>
                    <suppressionFile>owasp-dependency-check-suppressions.xml</suppressionFile>
                </configuration>
                <executions>
                    <execution>
                        <phase>none</phase>  <!-- TODO: Consider enabling so part of dev flow instead of just CI -->
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.cyclonedx</groupId>
                <artifactId>cyclonedx-maven-plugin</artifactId>
                <version>2.7.9</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>makeBom</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
              <plugin>
                    <groupId>com.googlecode.fmpp-maven-plugin</groupId>
                    <artifactId>fmpp-maven-plugin</artifactId>
                    <version>1.0</version>
              </plugin>
              <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.2.5</version>
                    <configuration>
                        <!-- locale settings must be set on the command line before startup -->
                        <!-- set default options -->
                        <argLine>
                            @{jacocoArgLine}
                            ${jdk.strong.encapsulation.argLine}
                            ${jdk.security.manager.allow.argLine}
                            -Xmx2048m
                            -XX:MaxDirectMemorySize=2500m
                            -XX:+ExitOnOutOfMemoryError
                            -XX:+HeapDumpOnOutOfMemoryError
                            -Duser.language=en
                            -Duser.GroupByQueryRunnerTest.javacountry=US
                            -Dfile.encoding=UTF-8
                            -Duser.timezone=UTC
                            -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
                            -Daws.region=us-east-1 <!-- required for s3-related unit tests -->
                            -Ddruid.test.stupidPool.poison=true
                            -XX:OnOutOfMemoryError=${project.parent.basedir}/dev/chmod-heap-dumps.sh
                            -XX:HeapDumpPath=${project.parent.basedir}/target
                            <!--@TODO After fixing https://github.com/apache/druid/issues/4964 remove this parameter-->
                            -Ddruid.indexing.doubleStorage=double
                            ${jfrProfilerArgLine}
                        </argLine>
                        <!-- Skip the tests which Surefire runs. Surefire runs the unit tests,
                             while its sister plugin, Failsafe, runs the "new" ITs. -->
                        <skipTests>${skipUTs}</skipTests>
                        <trimStackTrace>${surefire.trimStackTrace}</trimStackTrace>
                        <!-- our tests are very verbose, let's keep the volume down -->
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
                        <!-- Surefire default is to exclude static inner classes; which may lead to the ignore of static inner classes
                             https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#excludes -->
                        <excludes>
                           <exclude />
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <ignoredNonTestScopedDependencies>
                            <ignoredNonTestScopedDependency>*</ignoredNonTestScopedDependency>
                        </ignoredNonTestScopedDependencies>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>install</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.5.0</version>
                </plugin>
                <plugin>
                    <groupId>org.scala-tools</groupId>
                    <artifactId>maven-scala-plugin</artifactId>
                    <version>2.15.2</version>
                </plugin>
                <plugin>
                    <groupId>org.antlr</groupId>
                    <artifactId>antlr4-maven-plugin</artifactId>
                    <version>4.5.3</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>3.5.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javacc-maven-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <!-- jdk8 started linting javadocs by default; ours are not fully compliant -->
                        <doclint>none</doclint>
                        <!-- HadoopFsWrapper javadocs cannot be generated due to missing annotations -->
                        <excludePackageNames>org.apache.hadoop.fs</excludePackageNames>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.11.0</version>
                    <inherited>true</inherited>
                    <configuration>
                        <release>${maven.compiler.release}</release>
                    </configuration>
                </plugin>
              <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>1.15.0</version>
              </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <profiles>
        <profile>
            <id>java-12+</id>
            <activation>
                <jdk>[12,)</jdk>
            </activation>
            <properties>
                <jdk.security.manager.allow.argLine>
                  <!-- required for system-rules with Java >= 18 https://github.com/stefanbirkner/system-rules/issues/85 -->
                  <!-- this option is only available starting in Java 12 -->
                    -Djava.security.manager=allow
                </jdk.security.manager.allow.argLine>
            </properties>
        </profile>
          <profile>
            <id>strict</id>
            <activation>
              <property>
                <name>strictCompile</name>
              </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <fork>true</fork>
                            <meminitial>1024m</meminitial>
                            <maxmem>3000m</maxmem>
                            <release>${java.version}</release>
                            <showWarnings>false</showWarnings>
                            <compilerArgs>
                                <arg>-XDcompilePolicy=simple</arg>
                                <arg>-Xplugin:ErrorProne -XepExcludedPaths:.*/target/generated-(test-)?sources/.* -XepDisableWarningsInGeneratedCode -Xep:ClassCanBeStatic:ERROR -Xep:PreconditionsInvalidPlaceholder:ERROR -Xep:MissingOverride:ERROR -Xep:DefaultCharset:ERROR -Xep:QualifierOrScopeOnInjectMethod:ERROR -Xep:AssistedInjectAndInjectOnSameConstructor -Xep:AutoFactoryAtInject -Xep:ClassName -Xep:ComparisonContractViolated -Xep:DepAnn -Xep:EmptyIf -Xep:InjectInvalidTargetingOnScopingAnnotation  -Xep:InjectMoreThanOneQualifier -Xep:InjectScopeAnnotationOnInterfaceOrAbstractClass -Xep:InjectScopeOrQualifierAnnotationRetention -Xep:InjectedConstructorAnnotations -Xep:InsecureCryptoUsage -Xep:JavaxInjectOnFinalField -Xep:LongLiteralLowerCaseSuffix -Xep:NoAllocation -Xep:NonRuntimeAnnotation -Xep:NumericEquality -Xep:ProtoStringFieldReferenceEquality -Xep:CheckedExceptionNotThrown:ERROR</arg>
                                <!-- Error Prone requires exemptions for Java >= 16, see https://errorprone.info/docs/installation#maven -->
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
                                <arg>-J--add-exports=java.base/sun.nio.ch=ALL-UNNAMED</arg>
                                <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
                                <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
                            </compilerArgs>
                              <annotationProcessorPaths>
                                <path>
                                  <groupId>com.google.errorprone</groupId>
                                  <artifactId>error_prone_core</artifactId>
                                  <version>${errorprone.version}</version>
                                </path>
                              </annotationProcessorPaths>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>parallel-test</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>test</phase>
                                <goals>
                                    <goal>test</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration combine.self="override">
                            <forkCount>${maven.fork.count}</forkCount>
                            <reuseForks>true</reuseForks>
                            <trimStackTrace>false</trimStackTrace>
                            <!-- locale settings must be set on the command line before startup -->
                            <!-- set heap size to work around https://github.com/travis-ci/travis-ci/issues/3396 -->
                            <argLine>
                                -Xmx768m -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8
                                -XX:+ExitOnOutOfMemoryError
                                -XX:+HeapDumpOnOutOfMemoryError
                                -Duser.timezone=UTC -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
                                -Daws.region=us-east-1 <!-- required for s3-related unit tests -->
                                -Ddruid.test.stupidPool.poison=true
                                <!--@TODO After fixing https://github.com/apache/druid/issues/4964 remove this parameter-->
                                -Ddruid.indexing.doubleStorage=double
                            </argLine>
                            <!-- our tests are very verbose, let's keep the volume down -->
                            <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- Run Apache Rat license checks in a separate profile, because during local builds it doesn't skip files
        that are not checked into Git -->
        <profile>
            <id>rat</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.15</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <outputDirectory>${project.basedir}/rat</outputDirectory>
                            <licenses>
                                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                                    <licenseFamilyCategory>MIT</licenseFamilyCategory>
                                    <licenseFamilyName>MIT JQuery</licenseFamilyName>
                                    <notes />
                                    <patterns>
                                        <pattern>Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors</pattern>
                                        <pattern>Copyright 2012 jQuery Foundation and other contributors; Licensed MIT</pattern>
                                        <pattern>jQuery Foundation, Inc. | jquery.org/license</pattern>
                                    </patterns>
                                </license>
                                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                                    <licenseFamilyCategory>Underscore</licenseFamilyCategory>
                                    <licenseFamilyName>Underscore</licenseFamilyName>
                                    <notes />
                                    <patterns>
                                        <pattern>Underscore is freely distributable under the MIT license</pattern>
                                    </patterns>
                                </license>
                                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                                    <licenseFamilyCategory>Allan Jardine</licenseFamilyCategory>
                                    <licenseFamilyName>Allan Jardine</licenseFamilyName>
                                    <notes />
                                    <patterns>
                                        <pattern>Copyright 2009 Allan Jardine. All Rights Reserved</pattern>
                                    </patterns>
                                </license>
                                <license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
                                    <licenseFamilyCategory>Allan Jardine</licenseFamilyCategory>
                                    <licenseFamilyName>Allan Jardine</licenseFamilyName>
                                    <notes />
                                    <patterns>
                                        <pattern>Copyright 2009 Allan Jardine. All Rights Reserved</pattern>
                                        <pattern>Copyright 2008-2011 Allan Jardine</pattern>
                                        <pattern>GPL v2 or BSD 3 point style</pattern>
                                    </patterns>
                                </license>
                            </licenses>
                            <licenseFamilies>
                                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                                    <familyName>MIT JQuery</familyName>
                                </licenseFamily>
                                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                                    <familyName>Underscore</familyName>
                                </licenseFamily>
                                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                                    <familyName>Allan Jardine</familyName>
                                </licenseFamily>
                            </licenseFamilies>
                            <excludes>
                                <exclude>publications/**</exclude>
                                <exclude>codestyle/*-forbidden-apis.txt</exclude>
                                <exclude>conf/**</exclude>
                                <exclude>docker/*.conf</exclude>
                                <exclude>docker/service-supervisords/*.conf</exclude>
                                <exclude>**/target/**</exclude>
                                <exclude>licenses/**</exclude>
                                <exclude>**/test/resources/**/*</exclude> <!-- test data for "old" ITs. -->
                                <exclude>**/docker/client_tls/*</exclude> <!-- generated files for "old" ITs. -->
                                <exclude>resources/data/**/*</exclude> <!-- test data for "new" ITs. -->
                                <exclude>**/jvm.config</exclude>
                                <exclude>**/*.avsc</exclude>
                                <exclude>**/*.png</exclude>
                                <exclude>**/*.log</exclude>
                                <exclude>**/*.jpg</exclude>
                                <exclude>**/*.gif</exclude>
                                <exclude>examples/quickstart/protobuf/metrics.desc</exclude>
                                <exclude>examples/var/sv/.lock</exclude>
                                <exclude>**/*.iml</exclude>
                                <exclude>**/*.json</exclude>
                                <exclude>**/*.parq</exclude>
                                <exclude>**/*.parquet</exclude>
                                <exclude>**/*.pmd</exclude> <!-- Artifact of maven-pmd-plugin -->
                                <exclude>**/*.pmdruleset.xml</exclude> <!-- Artifact of maven-pmd-plugin -->
                                <exclude>**/docker/schema-registry/*</exclude>
                                <exclude>LICENSE</exclude>
                                <exclude>LICENSE.BINARY</exclude>
                                <exclude>NOTICE</exclude>
                                <exclude>NOTICE.BINARY</exclude>
                                <exclude>LABELS</exclude>
                                <exclude>.github/ISSUE_TEMPLATE/*.md</exclude>
                                <exclude>.github/pull_request_template.md</exclude>
                                <exclude>.github/dependabot.yml</exclude>
                                <exclude>.github/workflows/codeql.yml</exclude>
                                <exclude>.github/config/codeql-config.yml</exclude>
                                <exclude>git.version</exclude>
                                <exclude>src/**/*.snap</exclude>
                                <exclude>examples/conf/**</exclude>
                                <exclude>.asf.yaml</exclude>
                                <exclude>**/dependency-reduced-pom.xml</exclude>
                                <exclude>.editorconfig</exclude>
                                <exclude>**/hadoop.indexer.libs.version</exclude>
                                <exclude>**/codegen/**/*</exclude>
                                <exclude>**/.settings/**/*</exclude> <!-- Eclipse -->
                                <exclude>**/.classpath</exclude> <!-- Eclipse -->
                                <exclude>**/.project</exclude> <!-- Eclipse -->
                                <exclude>**/*.iq</exclude> <!-- quidem testfiles -->
                                <exclude>**/*.iq.out</exclude> <!-- quidem testfiles -->
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- Prevent the source-release-assembly execution defined in the Apache parent POM from running
             so we can control it ourselves -->
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                      <groupId>org.owasp</groupId>
                      <artifactId>dependency-check-maven</artifactId>
                      <executions>
                          <execution>
                              <phase>compile</phase>
                              <goals>
                                  <goal>check</goal>
                              </goals>
                          </execution>
                      </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
          <id>skip-static-checks</id>
          <properties>
            <animal.sniffer.skip>true</animal.sniffer.skip>
            <cyclonedx.skip>true</cyclonedx.skip>
            <checkstyle.skip>true</checkstyle.skip>
            <enforcer.skip>true</enforcer.skip>
            <forbiddenapis.skip>true</forbiddenapis.skip>
            <maven.javadoc.skip>true</maven.javadoc.skip>
            <pmd.skip>true</pmd.skip>
            <spotbugs.skip>true</spotbugs.skip>
            <maven.gitcommitid.skip>true</maven.gitcommitid.skip>
          </properties>
        </profile>
        <profile>
          <id>skip-tests</id>
          <activation>
            <activeByDefault>false</activeByDefault>
          </activation>
          <properties>
            <skipTests>true</skipTests> <!-- skips both UTs and ITs -->
            <jacoco.skip>true</jacoco.skip>
          </properties>
        </profile>
        <profile>
            <id>ci</id>
        </profile>
    </profiles>
</project>