| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>39</version> |
| <relativePath /> |
| </parent> |
| |
| <groupId>org.apache.pinot</groupId> |
| <artifactId>pinot</artifactId> |
| <version>1.6.0-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| <name>Pinot</name> |
| <description>A realtime distributed OLAP datastore</description> |
| <url>https://pinot.apache.org/</url> |
| |
| <modules> |
| <module>pinot-bom</module> |
| <module>pinot-dependency-verifier</module> |
| <module>pinot-spi</module> |
| <module>pinot-segment-spi</module> |
| <module>pinot-broker</module> |
| <module>pinot-common</module> |
| <module>pinot-clients</module> |
| <module>pinot-server</module> |
| <module>pinot-core</module> |
| <module>pinot-materialized-view</module> |
| <module>pinot-controller</module> |
| <module>pinot-minion</module> |
| <module>pinot-plugins</module> |
| <module>pinot-tools</module> |
| <module>pinot-perf</module> |
| <module>pinot-integration-test-base</module> |
| <module>pinot-integration-tests</module> |
| <module>pinot-distribution</module> |
| <module>pinot-connectors</module> |
| <module>pinot-segment-local</module> |
| <module>pinot-compatibility-verifier</module> |
| <module>pinot-java11-client-verifier</module> |
| <module>pinot-query-planner-spi</module> |
| <module>pinot-query-planner</module> |
| <module>pinot-query-runtime</module> |
| <module>pinot-timeseries</module> |
| <module>pinot-udf-test</module> |
| <module>pinot-sql-ddl</module> |
| </modules> |
| |
| <licenses> |
| <license> |
| <name>Apache License, Version 2.0</name> |
| <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| <distribution>repo</distribution> |
| </license> |
| </licenses> |
| |
| <organization> |
| <name>Apache Software Foundation</name> |
| <url>http://www.apache.org</url> |
| </organization> |
| |
| <mailingLists> |
| <mailingList> |
| <name>Dev Mailing List</name> |
| <post>dev@pinot.apache.org</post> |
| <subscribe>dev-subscribe@pinot.apache.org</subscribe> |
| <unsubscribe>dev-unsubscribe@pinot.apache.org</unsubscribe> |
| </mailingList> |
| |
| <mailingList> |
| <name>User Mailing List</name> |
| <post>user@pinot.apache.org</post> |
| <subscribe>user-subscribe@pinot.apache.org</subscribe> |
| <unsubscribe>user-unsubscribe@pinot.apache.org</unsubscribe> |
| </mailingList> |
| |
| <mailingList> |
| <name>Commits Mailing List</name> |
| <post>commits@pinot.apache.org</post> |
| <subscribe>commits-subscribe@pinot.apache.org</subscribe> |
| <unsubscribe>commits-unsubscribe@pinot.apache.org</unsubscribe> |
| </mailingList> |
| </mailingLists> |
| |
| <scm> |
| <developerConnection>scm:git:git@github.com:apache/pinot.git</developerConnection> |
| <tag>HEAD</tag> |
| </scm> |
| |
| <!-- Apache project inception year for generating correct NOTICE file for jar bundle. --> |
| <inceptionYear>2018</inceptionYear> |
| |
| <properties> |
| <pinot.root>${basedir}</pinot.root> |
| <build.profile.id>dev</build.profile.id> |
| <!-- |
| Pinot services build against Java 25 by default. SPI/client modules consumed |
| by external JVMs (pinot-spi, pinot-segment-spi, pinot-timeseries-spi, |
| pinot-common, pinot-java-client, pinot-jdbc-client) hard-code Java 11 |
| bytecode in their own maven-compiler-plugin configuration. |
| --> |
| <jdk.version>25</jdk.version> |
| <!-- OS classifier for platform-specific protoc/grpc binaries, overridden by OS detection profiles --> |
| <os.detected.classifier>linux-x86_64</os.detected.classifier> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| |
| <!-- Setting maven.compiler flags to the jdk version. These are used by maven plugins like maven-javadoc-plugin --> |
| <maven.compiler.release>${jdk.version}</maven.compiler.release> |
| <maven.compiler.source>${jdk.version}</maven.compiler.source> |
| <maven.compiler.target>${jdk.version}</maven.compiler.target> |
| |
| <!-- Configuration for unit/integration tests |
| Property for running integration tests with profiles |
| at the command line, where you do: |
| mvn integration-test -P integration-test |
| See also: the surefire plugin section and the profiles section.--> |
| <!-- Only unit tests are run by default. --> |
| <skip.integration.tests>true</skip.integration.tests> |
| <skip.unit.tests>false</skip.unit.tests> |
| <!-- |
| Per-fork heap for unit tests. Defaults to 4g to preserve historical behavior. When |
| running multiple parallel forks (unit.test.fork.count > 1) CI lowers this so that |
| N forks * heap + the Maven JVM stay within the runner's memory. |
| --> |
| <unit.test.fork.heap>4g</unit.test.fork.heap> |
| <!-- Sets the VM argument line used when unit tests are run. --> |
| <argLine>-Xms${unit.test.fork.heap} -Xmx${unit.test.fork.heap}</argLine> |
| <SKIP_INTEGRATION_TESTS>true</SKIP_INTEGRATION_TESTS> |
| <!-- |
| Number of parallel JVM forks used by surefire for unit tests. Defaults to 1 to |
| preserve the historical single-fork behavior for local/dev builds. CI overrides |
| this (e.g. -Dunit.test.fork.count=3) to run test classes in parallel forks and |
| shorten the unit-test phase. Must be a positive integer. |
| --> |
| <unit.test.fork.count>1</unit.test.fork.count> |
| <!-- |
| Number of times surefire retries a failing unit test before failing the build. Defaults to |
| 0 (no retry) so local/dev behavior is unchanged; CI raises it to absorb a few pre-existing |
| load-sensitive flaky tests exposed by parallel forks. A test passing only on retry is |
| reported as flaky, not silently passed. |
| --> |
| <unit.test.rerun.count>0</unit.test.rerun.count> |
| <!-- |
| Suffix for the JaCoCo exec file name. Empty by default so coverage writes the |
| historical target/jacoco.exec (used by report / report-aggregate everywhere). The |
| unit-test script sets this to -${surefire.forkNumber} so parallel forks each write a |
| distinct jacoco-<n>.exec instead of appending to one shared file. |
| --> |
| <jacoco.exec.suffix></jacoco.exec.suffix> |
| |
| <!-- Checkstyle violation prop.--> |
| <checkstyle.violation.severity>warning</checkstyle.violation.severity> |
| <checkstyle.fail.on.violation>true</checkstyle.fail.on.violation> |
| |
| <!-- Configuration for Packaging --> |
| <shade.prefix>org.apache.pinot.shaded</shade.prefix> |
| <shade.phase.prop>none</shade.phase.prop> |
| <!-- Keep these enabled by default; fastdev can disable them for incremental builds. --> |
| <pinot.skip.buildnumber>false</pinot.skip.buildnumber> |
| <package.info.phase>generate-sources</package.info.phase> |
| <pinot.skip.remote.resources>false</pinot.skip.remote.resources> |
| |
| <arrow.version>19.0.0</arrow.version> |
| <avro.version>1.12.2</avro.version> |
| <bson.version>5.11.0</bson.version> |
| <parquet.version>1.18.0</parquet.version> |
| <orc.version>1.9.9</orc.version> |
| <hive.version>4.2.1</hive.version> |
| <helix.version>2.0.1</helix.version> |
| <zkclient.version>0.11</zkclient.version> |
| <jackson.version>2.22.2</jackson.version> |
| <fory.version>1.7.1</fory.version> |
| <zookeeper.version>3.9.5</zookeeper.version> |
| <async-http-client.version>3.0.13</async-http-client.version> |
| <jersey.version>2.48</jersey.version> |
| <hk2.version>2.6.1</hk2.version> |
| <swagger.version>1.6.16</swagger.version> |
| <swagger-ui.version>5.32.14</swagger-ui.version> |
| <hadoop.version>3.4.3</hadoop.version> |
| <jsonpath.version>2.10.0</jsonpath.version> |
| <jsonsmart.version>2.6.0</jsonsmart.version> |
| <quartz.version>2.5.2</quartz.version> |
| <calcite.version>1.42.0</calcite.version> |
| <joou.version>0.9.5</joou.version> |
| <immutables.version>2.12.2</immutables.version> |
| <lucene.version>9.12.0</lucene.version> |
| <reflections.version>0.10.2</reflections.version> |
| <dynatrace.hash4j.version>0.30.0</dynatrace.hash4j.version> |
| <yammer-metrics.version>2.2.0</yammer-metrics.version> |
| <!-- helix-core, spark-core use libraries from io.dropwizard.metrics --> |
| <dropwizard-metrics.version>4.2.40</dropwizard-metrics.version> |
| <snappy-java.version>1.1.10.8</snappy-java.version> |
| <zstd-jni.version>1.5.7-16</zstd-jni.version> |
| <lz4-java.version>1.11.2</lz4-java.version> |
| <libthrift.version>0.24.0</libthrift.version> |
| <log4j.version>2.26.1</log4j.version> |
| <slf4j.version>2.0.18</slf4j.version> |
| <netty.version>4.1.137.Final</netty.version> |
| <reactivestreams.version>1.0.4</reactivestreams.version> |
| <jts.version>1.20.0</jts.version> |
| <h3.version>4.5.0</h3.version> |
| <ipaddress.version>5.6.2</ipaddress.version> |
| <openhft.chronicle-bom.version>2.27ea100</openhft.chronicle-bom.version> |
| <jmh.version>1.37</jmh.version> |
| <audienceannotations.version>0.15.1</audienceannotations.version> |
| <clp-ffi.version>0.4.7</clp-ffi.version> |
| <stax2-api.version>4.3.0</stax2-api.version> |
| <aws.sdk.version>2.54.9</aws.sdk.version> |
| <azure.sdk.version>1.3.7</azure.sdk.version> |
| <azure.msal4j.version>1.26.0</azure.msal4j.version> |
| <joda-time.version>2.14.3</joda-time.version> |
| <janino.version>3.1.12</janino.version> |
| <ayza.version>10.0.7</ayza.version> |
| <jbcrypt.version>0.4</jbcrypt.version> |
| <scala-xml.version>2.4.0</scala-xml.version> |
| <plexus-classworlds.version>2.12.1</plexus-classworlds.version> |
| <protobuf-dynamic.version>1.0.1</protobuf-dynamic.version> |
| <localstack-utils.version>0.2.23</localstack-utils.version> |
| <checker-qual.version>4.2.2</checker-qual.version> |
| <groovy.version>3.0.25</groovy.version> |
| <xml-apis.version>2.0.2</xml-apis.version> |
| <roaring-bitmap.version>1.6.20</roaring-bitmap.version> |
| <prometheus.jmx-exporter.version>1.6.0</prometheus.jmx-exporter.version> |
| <prometheus.metrics.version>1.8.0</prometheus.metrics.version> |
| <fastutil.version>8.5.19</fastutil.version> |
| <disruptor.version>4.0.0</disruptor.version> |
| <snakeyaml.version>2.7</snakeyaml.version> |
| <hadoop-shaded-protobuf_3_25.version>1.5.0</hadoop-shaded-protobuf_3_25.version> |
| <clearspring-stream-lib.version>2.9.8</clearspring-stream-lib.version> |
| <datasketches-java.version>9.0.0</datasketches-java.version> |
| <t-digest.version>3.3</t-digest.version> |
| <picocli.version>4.7.7</picocli.version> |
| <tyrus-standalone-client.version>2.2.2</tyrus-standalone-client.version> |
| <jopt-simple.version>5.0.4</jopt-simple.version> |
| |
| <spark3.version>3.5.9</spark3.version> |
| <kafka3.version>3.9.2</kafka3.version> |
| <kafka4.version>4.2.0</kafka4.version> |
| <confluent.version>8.2.0</confluent.version> |
| <pulsar.version>4.0.13</pulsar.version> |
| <flink.version>2.3.0</flink.version> |
| |
| <!-- Apache Commons Libraries --> |
| <commons-lang3.version>3.20.0</commons-lang3.version> |
| <commons-collections4.version>4.6.0</commons-collections4.version> |
| <commons-text.version>1.15.0</commons-text.version> |
| <commons-compress.version>1.28.0</commons-compress.version> |
| <commons-math3.version>3.6.1</commons-math3.version> |
| <commons-csv.version>1.14.1</commons-csv.version> |
| <commons-configuration2.version>2.15.1</commons-configuration2.version> |
| <commons-beanutils.version>1.11.0</commons-beanutils.version> |
| <commons-io.version>2.22.0</commons-io.version> |
| <commons-codec.version>1.22.1</commons-codec.version> |
| <commons-cli.version>1.11.0</commons-cli.version> |
| <commons-net.version>3.13.0</commons-net.version> |
| <commons-validator.version>1.11.0</commons-validator.version> |
| |
| <!-- Java EE Libraries --> |
| <!-- Include both newer jakarta ones and older javax ones, but not migrate to Jakarta EE yet --> |
| <!-- DO NOT upgrade these versions unless we are migrating to Jakarta EE --> |
| <jakarta.servlet-api.version>4.0.4</jakarta.servlet-api.version> <!-- DO NOT UPGRADE --> |
| <javax.servlet-api.version>4.0.1</javax.servlet-api.version> <!-- DO NOT UPGRADE --> |
| <jakarta.annotation-api.version>1.3.5</jakarta.annotation-api.version> <!-- DO NOT UPGRADE --> |
| <javax.annotation-api.version>1.3.2</javax.annotation-api.version> <!-- DO NOT UPGRADE --> |
| <jakarta.validation-api.version>2.0.2</jakarta.validation-api.version> <!-- DO NOT UPGRADE --> |
| <javax.validation-api.version>2.0.1.Final</javax.validation-api.version><!-- DO NOT UPGRADE --> |
| <jakarta.xml.bind-api.version>2.3.3</jakarta.xml.bind-api.version> <!-- DO NOT UPGRADE --> |
| <javax.jaxb-api.version>2.3.1</javax.jaxb-api.version> <!-- DO NOT UPGRADE --> |
| <jakarta.ws.rs-api.version>2.1.6</jakarta.ws.rs-api.version> <!-- DO NOT UPGRADE --> |
| <javax.ws.rs-api.version>2.1.1</javax.ws.rs-api.version> <!-- DO NOT UPGRADE --> |
| <jakarta.activation-api.version>1.2.2</jakarta.activation-api.version> <!-- DO NOT UPGRADE --> |
| |
| <!-- HTTP Components Libraries --> |
| <httpclient.version>4.5.14</httpclient.version> |
| <httpcore.version>4.4.16</httpcore.version> |
| <httpclient5.version>5.6.4</httpclient5.version> |
| <httpcore5.version>5.4.3</httpcore5.version> |
| |
| <!-- Google Libraries --> |
| <protobuf.version>4.36.1</protobuf.version> |
| <grpc.version>1.83.1</grpc.version> |
| <google.cloud.libraries.version>26.87.0</google.cloud.libraries.version> |
| <opentelemetry.gcp.resources.version>1.60.0-alpha</opentelemetry.gcp.resources.version> |
| <google.auto-service.version>1.1.1</google.auto-service.version> |
| <google.re2j.version>1.8</google.re2j.version> |
| <google.errorprone.version>2.50.0</google.errorprone.version> |
| <google.j2objc.version>3.1</google.j2objc.version> |
| <google.jsr305.version>3.0.2</google.jsr305.version> |
| |
| <!-- Configuration for Scala --> |
| <scala-2.12.version>2.12.20</scala-2.12.version> |
| <scala-2.13.version>2.13.18</scala-2.13.version> |
| <scala.version>${scala-2.13.version}</scala.version> |
| <scala.compat.version>2.13</scala.compat.version> |
| |
| <!-- For Dependency Verifier module --> |
| <enforcer-api.version>3.6.3</enforcer-api.version> |
| <maven.version>3.9.16</maven.version> |
| <jdom2.version>2.0.6.1</jdom2.version> |
| <plexus-utils.version>4.1.0</plexus-utils.version> |
| <plexus-xml.version>3.1.0</plexus-xml.version> |
| |
| <!-- For maven-antrun-plugin --> |
| <fmpp.version>0.9.16</fmpp.version> |
| |
| <!-- Solve conflicts and vulnerabilities --> |
| <kerby.version>2.1.2</kerby.version> |
| <jline.version>4.4.1</jline.version> |
| <wildfly.version>2.0.1</wildfly.version> |
| <jettison.version>1.5.7</jettison.version> |
| <nimbus-jose-jwt.version>10.9.1</nimbus-jose-jwt.version> |
| <dnsjava.version>3.6.5</dnsjava.version> |
| <eclipse.jetty.version>9.4.58.v20250814</eclipse.jetty.version> |
| <woodstox.version>7.2.2</woodstox.version> |
| <curator.version>5.9.0</curator.version> |
| <javassist.version>3.33.0-GA</javassist.version> |
| <bouncycastle.version>1.85</bouncycastle.version> |
| <aircompressor.version>2.0.3</aircompressor.version> |
| <jna.version>5.19.1</jna.version> |
| <jnr-ffi.version>2.3.1</jnr-ffi.version> |
| <jnr-constants.version>0.11.0</jnr-constants.version> |
| <asm.version>9.10.1</asm.version> |
| <paranamer.version>2.8.3</paranamer.version> |
| <kotlin.stdlib.version>2.4.10</kotlin.stdlib.version> |
| <jetbrains.annotations.version>26.1.0</jetbrains.annotations.version> |
| <okio.version>3.18.1</okio.version> |
| <kryo.version>2.24.0</kryo.version> |
| <objenesis.version>3.6</objenesis.version> |
| <chill.version>0.10.0</chill.version> |
| <HikariCP-java7.version>2.4.13</HikariCP-java7.version> |
| <ivy.version>2.6.0</ivy.version> |
| <c3p0.version>0.14.1</c3p0.version> |
| <mchange-commons-java.version>0.6.1</mchange-commons-java.version> |
| <animal-sniffer-annotations.version>1.27</animal-sniffer-annotations.version> |
| |
| <!-- Test Libraries --> |
| <testng.version>7.12.0</testng.version> |
| <junit-jupiter-api.version>5.14.4</junit-jupiter-api.version> |
| <mockito-core.version>5.23.0</mockito-core.version> |
| <equalsverifier.version>3.19.4</equalsverifier.version> |
| <testcontainers.version>2.0.5</testcontainers.version> |
| <h2.version>2.4.240</h2.version> |
| <jnr-posix.version>3.2.2</jnr-posix.version> |
| <scalatest.version>3.2.20</scalatest.version> |
| <assertj.version>3.27.7</assertj.version> |
| |
| <archiver.compress>true</archiver.compress> |
| <archiver.recompressZippedFiles>true</archiver.recompressZippedFiles> |
| <japicmp.skip>true</japicmp.skip> |
| </properties> |
| |
| <profiles> |
| <profile> |
| <id>dependency-verifier</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <extensions>true</extensions> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.pinot</groupId> |
| <artifactId>pinot-dependency-verifier</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>default-cli</id> <!-- magic id, used when calling enforcer:enforce --> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <phase>validate</phase> |
| <configuration> |
| <rules> |
| <pinotCustomDependencyVersionRule implementation="org.apache.pinot.verifier.PinotCustomDependencyVersionRule"> |
| <skipModules>pinot-plugins,pinot-connectors,pinot-integration-tests, |
| pinot-tools,contrib,pinot-dependency-verifier</skipModules> |
| </pinotCustomDependencyVersionRule> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>pinot-fastdev</id> |
| <!-- disable verifying plugins that can be easily fixed after a successful implementation --> |
| <properties> |
| <checkstyle.skip>true</checkstyle.skip> |
| <!-- This plugin slows down the builds, most likely caused by an issue in the deprecated org.apache.maven.shared.utils.io.DirectoryScanner --> |
| <license.skip>true</license.skip> |
| <!-- This plugin slows down the builds, most likely caused by an issue in the deprecated org.apache.maven.shared.utils.io.DirectoryScanner --> |
| <rat.skip>true</rat.skip> |
| <spotless.check.skip>true</spotless.check.skip> |
| <shade.phase.prop>none</shade.phase.prop> |
| <archiver.compress>false</archiver.compress> |
| <archiver.recompressZippedFiles>false</archiver.recompressZippedFiles> |
| <!-- Avoid rewriting metadata/generated sources on every local build. --> |
| <pinot.skip.buildnumber>true</pinot.skip.buildnumber> |
| <package.info.phase>none</package.info.phase> |
| <pinot.skip.remote.resources>true</pinot.skip.remote.resources> |
| </properties> |
| </profile> |
| <!-- OS detection profiles: set os.detected.classifier for protoc/grpc binary resolution --> |
| <profile> |
| <id>os-detect-linux-aarch64</id> |
| <activation> |
| <os> |
| <name>linux</name> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.detected.classifier>linux-aarch_64</os.detected.classifier> |
| </properties> |
| </profile> |
| <profile> |
| <id>os-detect-osx-x86_64</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>x86_64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.detected.classifier>osx-x86_64</os.detected.classifier> |
| </properties> |
| </profile> |
| <profile> |
| <id>os-detect-osx-aarch64</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.detected.classifier>osx-aarch_64</os.detected.classifier> |
| </properties> |
| </profile> |
| <profile> |
| <id>os-detect-windows-x86_64</id> |
| <activation> |
| <os> |
| <family>windows</family> |
| <arch>amd64</arch> |
| </os> |
| </activation> |
| <properties> |
| <os.detected.classifier>windows-x86_64</os.detected.classifier> |
| </properties> |
| </profile> |
| |
| <!--build profile for linux-aarch64. We exclude certain tests as they use runtime JNI bindings not supported for linux-aarch64--> |
| <profile> |
| <id>linux-aarch64</id> |
| <activation> |
| <!--os info is taken from the output of mvn -version--> |
| <os> |
| <name>linux</name> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire.version}</version> |
| <configuration> |
| <systemPropertyVariables> |
| <os.arch>aarch64</os.arch> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!--build profile for osx-aarch64. We exclude certain tests as they use runtime JNI bindings not supported for linux-aarch64--> |
| <profile> |
| <id>osx-aarch64</id> |
| <activation> |
| <!--os info is taken from the output of mvn -version--> |
| <os> |
| <name>mac os x</name> |
| <arch>aarch64</arch> |
| </os> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${surefire.version}</version> |
| <configuration> |
| <excludes> |
| </excludes> |
| <systemPropertyVariables> |
| <os.arch>aarch64</os.arch> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Apple Silicon Mac with protoc-gen-grpc-java at /usr/local (fallback path) --> |
| <profile> |
| <id>macos-arm64-protobuf-homebrew-fallback</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>aarch64</arch> |
| </os> |
| <file> |
| <exists>/usr/local/bin/protoc-gen-grpc-java</exists> |
| </file> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <configuration> |
| <pluginExecutable>/usr/local/bin/protoc-gen-grpc-java</pluginExecutable> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <!-- Apple Silicon Mac with Homebrew for protoc (wins over fallback when both exist) --> |
| <profile> |
| <id>macos-arm64-protobuf-homebrew</id> |
| <activation> |
| <os> |
| <family>mac</family> |
| <arch>aarch64</arch> |
| </os> |
| <file> |
| <exists>/opt/homebrew/bin/protoc-gen-grpc-java</exists> |
| </file> |
| </activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <configuration> |
| <pluginExecutable>/opt/homebrew/bin/protoc-gen-grpc-java</pluginExecutable> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>github-actions</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <!-- Inherits unit.test.fork.heap from the global properties (overridable via |
| -Dunit.test.fork.heap); adds the log4j2 config used under github-actions. --> |
| <argLine>-Xms${unit.test.fork.heap} -Xmx${unit.test.fork.heap} -Dlog4j2.configurationFile=log4j2.xml</argLine> |
| </properties> |
| </profile> |
| <profile> |
| <id>codecoverage</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>prepare-agent</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <append>true</append> |
| <includes> |
| <include>org/apache/pinot/**/*</include> |
| </includes> |
| <!-- Exec file suffix defaults to empty, keeping the historical |
| target/jacoco.exec used by report / report-aggregate everywhere (incl. |
| the integration lanes). The unit-test script sets jacoco.exec.suffix to |
| -${surefire.forkNumber} so parallel forks (forkCount > 1) each write a |
| distinct jacoco-<n>.exec instead of appending to one shared file; it |
| then aggregates with a matching jacoco-*.exec glob. --> |
| <destFile>${project.build.directory}/jacoco${jacoco.exec.suffix}.exec</destFile> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- Disable source release assembly for 'apache-release' profile. --> |
| <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> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>scala-2.12</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| <properties> |
| <scala.version>${scala-2.12.version}</scala.version> |
| <scala.compat.version>2.12</scala.compat.version> |
| </properties> |
| </profile> |
| </profiles> |
| |
| <dependencyManagement> |
| <dependencies> |
| <!-- |
| Pinot Modules — managed via pinot-bom (see pinot-bom/pom.xml). |
| |
| When adding a new subproject (module) to this build, declare its |
| dependencyManagement entry in pinot-bom/pom.xml, NOT here. The BOM |
| is imported below and makes the version available to all modules in |
| this reactor as well as to external consumers who import the BOM. |
| |
| Projects that set this root pom as their <parent> and use a different |
| version must import pinot-bom explicitly at their desired Pinot version |
| in their own <dependencyManagement> (before any inherited entries). |
| Maven's first-import-wins rule ensures that explicit child import takes |
| precedence and the inherited ${project.version} import is never resolved. |
| --> |
| <dependency> |
| <groupId>org.apache.pinot</groupId> |
| <artifactId>pinot-bom</artifactId> |
| <version>${project.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Arrow dependencies for Broker GRPC ResultTable Serde protocol --> |
| <!-- arrow bom --> |
| <dependency> |
| <groupId>org.apache.arrow</groupId> |
| <artifactId>arrow-bom</artifactId> |
| <version>${arrow.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <!-- Explicit pin: arrow-bom declares arrow-vector twice (with empty classifier), causing Maven 4 warnings --> |
| <dependency> |
| <groupId>org.apache.arrow</groupId> |
| <artifactId>arrow-vector</artifactId> |
| <version>${arrow.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.checkerframework</groupId> |
| <artifactId>checker-qual</artifactId> |
| <version>${checker-qual.version}</version> |
| </dependency> |
| <!-- Groovy 3.x publishes groovy-all as a POM aggregator that pulls in every sub-module. |
| We exclude groovy-testng/groovy-test-junit5/groovy-test because their transitive TestNG and |
| JUnit jars collide with Surefire's TestNG fork classpath and cause NoClassDefFoundError on |
| unrelated test classes. Everything else (groovy core, templates, json, xml, sql, jmx, swing, |
| ant, cli-picocli, datetime, nio, jsr223, console, etc.) is kept to preserve the runtime |
| Groovy stdlib surface user transform/filter scripts may rely on from the old 2.4.21 fat jar. --> |
| <dependency> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-all</artifactId> |
| <version>${groovy.version}</version> |
| <type>pom</type> |
| <exclusions> |
| <exclusion> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-testng</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-test-junit5</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.codehaus.groovy</groupId> |
| <artifactId>groovy-test</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>xml-apis</groupId> |
| <artifactId>xml-apis</artifactId> |
| <version>${xml-apis.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.roaringbitmap</groupId> |
| <artifactId>RoaringBitmap</artifactId> |
| <version>${roaring-bitmap.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.101tec</groupId> |
| <artifactId>zkclient</artifactId> |
| <version>${zkclient.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- JMX exporter (collector module is published to Maven Central; the javaagent JAR is not since 1.1.0) --> |
| <dependency> |
| <groupId>io.prometheus.jmx</groupId> |
| <artifactId>collector</artifactId> |
| <version>${prometheus.jmx-exporter.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.prometheus</groupId> |
| <artifactId>prometheus-metrics-exporter-httpserver</artifactId> |
| <version>${prometheus.metrics.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>io.prometheus</groupId> |
| <artifactId>prometheus-metrics-core</artifactId> |
| <version>${prometheus.metrics.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <!-- |
| Pin prometheus-metrics-model to the same version as prometheus-metrics-core. The JMX |
| exporter (io.prometheus.jmx:collector) brings in an older prometheus-metrics-model |
| transitively, and a model/core version skew causes IllegalArgumentException at metric |
| registration time (the older model still rejects names ending in '_total', which the |
| newer core's Counter builder now passes through unstripped). |
| --> |
| <dependency> |
| <groupId>io.prometheus</groupId> |
| <artifactId>prometheus-metrics-model</artifactId> |
| <version>${prometheus.metrics.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- netty BOM --> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-bom</artifactId> |
| <version>${netty.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.reactivestreams</groupId> |
| <artifactId>reactive-streams</artifactId> |
| <version>${reactivestreams.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.yetus</groupId> |
| <artifactId>audience-annotations</artifactId> |
| <version>${audienceannotations.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>it.unimi.dsi</groupId> |
| <artifactId>fastutil</artifactId> |
| <version>${fastutil.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| <version>${joda-time.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.avro</groupId> |
| <artifactId>avro</artifactId> |
| <version>${avro.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.mongodb</groupId> |
| <artifactId>bson</artifactId> |
| <version>${bson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.avro</groupId> |
| <artifactId>avro-mapred</artifactId> |
| <version>${avro.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.parquet</groupId> |
| <artifactId>parquet-avro</artifactId> |
| <version>${parquet.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.parquet</groupId> |
| <artifactId>parquet-column</artifactId> |
| <version>${parquet.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.parquet</groupId> |
| <artifactId>parquet-hadoop</artifactId> |
| <version>${parquet.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.orc</groupId> |
| <artifactId>orc-core</artifactId> |
| <version>${orc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.orc</groupId> |
| <artifactId>orc-mapreduce</artifactId> |
| <version>${orc.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hive</groupId> |
| <artifactId>hive-storage-api</artifactId> |
| <version>${hive.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.xerial.snappy</groupId> |
| <artifactId>snappy-java</artifactId> |
| <version>${snappy-java.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.github.luben</groupId> |
| <artifactId>zstd-jni</artifactId> |
| <version>${zstd-jni.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>at.yawk.lz4</groupId> |
| <artifactId>lz4-java</artifactId> |
| <version>${lz4-java.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.thrift</groupId> |
| <artifactId>libthrift</artifactId> |
| <version>${libthrift.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.quartz-scheduler</groupId> |
| <artifactId>quartz</artifactId> |
| <version>${quartz.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.helix</groupId> |
| <artifactId>helix-core</artifactId> |
| <version>${helix.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.openjdk.jmh</groupId> |
| <artifactId>jmh-core</artifactId> |
| <version>${jmh.version}</version> |
| </dependency> |
| |
| <!-- log4j2 related dependencies --> |
| <!-- log4j bom --> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-bom</artifactId> |
| <version>${log4j.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-1.2-api</artifactId> |
| <version>${log4j.version}</version> |
| </dependency> |
| |
| <!-- We don't use slf4j but slf4j2. Including it here to support old libraries --> |
| <!-- slf4j bom --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-bom</artifactId> |
| <version>${slf4j.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.lmax</groupId> |
| <artifactId>disruptor</artifactId> |
| <version>${disruptor.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.asynchttpclient</groupId> |
| <artifactId>async-http-client</artifactId> |
| <version>${async-http-client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.yaml</groupId> |
| <artifactId>snakeyaml</artifactId> |
| <version>${snakeyaml.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper</artifactId> |
| <version>${zookeeper.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>ch.qos.logback</groupId> |
| <artifactId>logback-classic</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- Jackson --> |
| <dependency> |
| <groupId>com.fasterxml.jackson</groupId> |
| <artifactId>jackson-bom</artifactId> |
| <version>${jackson.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Apache Commons Libraries --> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <version>${commons-lang3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-collections4</artifactId> |
| <version>${commons-collections4.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-text</artifactId> |
| <version>${commons-text.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| <version>${commons-compress.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-math3</artifactId> |
| <version>${commons-math3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-csv</artifactId> |
| <version>${commons-csv.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-configuration2</artifactId> |
| <version>${commons-configuration2.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>commons-beanutils</groupId> |
| <artifactId>commons-beanutils</artifactId> |
| <version>${commons-beanutils.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <version>${commons-io.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| <version>${commons-codec.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-cli</groupId> |
| <artifactId>commons-cli</artifactId> |
| <version>${commons-cli.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-net</groupId> |
| <artifactId>commons-net</artifactId> |
| <version>${commons-net.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>commons-validator</groupId> |
| <artifactId>commons-validator</artifactId> |
| <version>${commons-validator.version}</version> |
| </dependency> |
| |
| <!-- Java EE Libraries --> |
| <dependency> |
| <groupId>jakarta.servlet</groupId> |
| <artifactId>jakarta.servlet-api</artifactId> |
| <version>${jakarta.servlet-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>javax.servlet-api</artifactId> |
| <version>${javax.servlet-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.annotation</groupId> |
| <artifactId>jakarta.annotation-api</artifactId> |
| <version>${jakarta.annotation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.annotation</groupId> |
| <artifactId>javax.annotation-api</artifactId> |
| <version>${javax.annotation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.validation</groupId> |
| <artifactId>jakarta.validation-api</artifactId> |
| <version>${jakarta.validation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.validation</groupId> |
| <artifactId>validation-api</artifactId> |
| <version>${javax.validation-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.xml.bind</groupId> |
| <artifactId>jakarta.xml.bind-api</artifactId> |
| <version>${jakarta.xml.bind-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.xml.bind</groupId> |
| <artifactId>jaxb-api</artifactId> |
| <version>${javax.jaxb-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.ws.rs</groupId> |
| <artifactId>jakarta.ws.rs-api</artifactId> |
| <version>${jakarta.ws.rs-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>javax.ws.rs</groupId> |
| <artifactId>javax.ws.rs-api</artifactId> |
| <version>${javax.ws.rs-api.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>jakarta.activation</groupId> |
| <artifactId>jakarta.activation-api</artifactId> |
| <version>${jakarta.activation-api.version}</version> |
| </dependency> |
| |
| <!-- HTTP Components Libraries --> |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpclient</artifactId> |
| <version>${httpclient.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents</groupId> |
| <artifactId>httpcore</artifactId> |
| <version>${httpcore.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents.client5</groupId> |
| <artifactId>httpclient5</artifactId> |
| <version>${httpclient5.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.httpcomponents.core5</groupId> |
| <artifactId>httpcore5</artifactId> |
| <version>${httpcore5.version}</version> |
| </dependency> |
| |
| <!-- Google Libraries --> |
| <!-- protobuf-bom --> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-bom</artifactId> |
| <version>${protobuf.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <!-- grpc-bom --> |
| <dependency> |
| <groupId>io.grpc</groupId> |
| <artifactId>grpc-bom</artifactId> |
| <version>${grpc.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <!-- libraries-bom should be imported after protobuf-bom and grpc-bom to honor their versions --> |
| <dependency> |
| <groupId>com.google.cloud</groupId> |
| <artifactId>libraries-bom</artifactId> |
| <version>${google.cloud.libraries.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <!-- Explicit pins: libraries-bom transitively imports protobuf-bom:4.33.2, conflicting with our 4.34.0 --> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>${protobuf.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java-util</artifactId> |
| <version>${protobuf.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-kotlin</artifactId> |
| <version>${protobuf.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.opentelemetry.contrib</groupId> |
| <artifactId>opentelemetry-gcp-resources</artifactId> |
| <version>${opentelemetry.gcp.resources.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.auto.service</groupId> |
| <artifactId>auto-service-annotations</artifactId> |
| <version>${google.auto-service.version}</version> |
| <optional>true</optional> <!-- This is only needed at compilation time as an annotation processor --> |
| </dependency> |
| <dependency> |
| <groupId>com.google.re2j</groupId> |
| <artifactId>re2j</artifactId> |
| <version>${google.re2j.version}</version> |
| </dependency> |
| <!-- Solve the dependency converge issue between guava and calcite-core --> |
| <dependency> |
| <groupId>com.google.errorprone</groupId> |
| <artifactId>error_prone_annotations</artifactId> |
| <version>${google.errorprone.version}</version> |
| </dependency> |
| <!-- Solve the dependency converge issue between guava and protobuf --> |
| <dependency> |
| <groupId>com.google.j2objc</groupId> |
| <artifactId>j2objc-annotations</artifactId> |
| <version>${google.j2objc.version}</version> |
| </dependency> |
| <!-- Solve the dependency converge issue between google and flink libraries --> |
| <dependency> |
| <groupId>com.google.code.findbugs</groupId> |
| <artifactId>jsr305</artifactId> |
| <version>${google.jsr305.version}</version> |
| </dependency> |
| |
| <!-- Hadoop --> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcprov-jdk15on</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-servlet</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-server</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-reload4j</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>ch.qos.reload4j</groupId> |
| <artifactId>reload4j</artifactId> |
| </exclusion> |
| <!-- Hadoop pulls org.eclipse.jetty (and org.eclipse.jetty.websocket) for its embedded |
| HttpServer2 web UIs, which downstream Pinot modules never start. These leak into |
| runtime distributions and carry CVE-2026-2332 (jetty-http request smuggling). Exclude |
| centrally here so every module depending on Hadoop is covered by default. Note: this |
| does NOT strip the relocated Jetty bundled inside the hadoop-client-runtime uber-jar |
| (org.apache.hadoop.shaded.org.eclipse.jetty); that is handled by the maven-shade-plugin |
| filter further down in this pom. --> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-hdfs</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-server</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>ch.qos.reload4j</groupId> |
| <artifactId>reload4j</artifactId> |
| </exclusion> |
| <!-- See hadoop-common above: drop embedded-Jetty web UI transitives (CVE-2026-2332). --> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-client</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-reload4j</artifactId> |
| </exclusion> |
| <!-- See hadoop-common above: drop embedded-Jetty web UI transitives (CVE-2026-2332). |
| For hadoop-client the compile-scoped leak path is |
| hadoop-yarn-client -> websocket-client -> jetty-client -> jetty-http. --> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-mapreduce-client-core</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>compile</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>com.google.inject</groupId> |
| <artifactId>guice</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.google.inject.extensions</groupId> |
| <artifactId>guice-servlet</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-client</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey</groupId> |
| <artifactId>jersey-server</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.sun.jersey.contribs</groupId> |
| <artifactId>jersey-guice</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-reload4j</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>ch.qos.reload4j</groupId> |
| <artifactId>reload4j</artifactId> |
| </exclusion> |
| <!-- See hadoop-common above: drop embedded-Jetty web UI transitives (CVE-2026-2332). --> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-hdfs-client</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| <exclusions> |
| <!-- See hadoop-common above: drop embedded-Jetty web UI transitives (CVE-2026-2332). --> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>*</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-client-runtime</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>commons-logging</groupId> |
| <artifactId>commons-logging</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-client-api</artifactId> |
| <version>${hadoop.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop.thirdparty</groupId> |
| <artifactId>hadoop-shaded-protobuf_3_25</artifactId> |
| <version>${hadoop-shaded-protobuf_3_25.version}</version> |
| </dependency> |
| |
| <!-- Metrics --> |
| <dependency> |
| <groupId>com.yammer.metrics</groupId> |
| <artifactId>metrics-core</artifactId> |
| <version>${yammer-metrics.version}</version> |
| </dependency> |
| |
| <!-- dropwizard metrics bom --> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-bom</artifactId> |
| <version>${dropwizard-metrics.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.clearspring.analytics</groupId> |
| <artifactId>stream</artifactId> |
| <version>${clearspring-stream-lib.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.datasketches</groupId> |
| <artifactId>datasketches-java</artifactId> |
| <version>${datasketches-java.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.dynatrace.hash4j</groupId> |
| <artifactId>hash4j</artifactId> |
| <version>${dynatrace.hash4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.tdunning</groupId> |
| <artifactId>t-digest</artifactId> |
| <version>${t-digest.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.jayway.jsonpath</groupId> |
| <artifactId>json-path</artifactId> |
| <version>${jsonpath.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.fory</groupId> |
| <artifactId>fory-json</artifactId> |
| <version>${fory.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>net.minidev</groupId> |
| <artifactId>json-smart</artifactId> |
| <version>${jsonsmart.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.calcite</groupId> |
| <artifactId>calcite-core</artifactId> |
| <version>${calcite.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.calcite.avatica</groupId> |
| <artifactId>avatica-metrics</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-dbcp2</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>com.yahoo.datasketches</groupId> |
| <artifactId>sketches-core</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>net.hydromatic</groupId> |
| <artifactId>aggdesigner-algorithm</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.calcite</groupId> |
| <artifactId>calcite-babel</artifactId> |
| <version>${calcite.version}</version> |
| </dependency> |
| |
| <!-- Required by Calcite --> |
| <dependency> |
| <groupId>org.immutables</groupId> |
| <artifactId>value-annotations</artifactId> |
| <version>${immutables.version}</version> |
| </dependency> |
| <!-- Pin joou-java-6 (unsigned integer types library, a Calcite dependency since 1.41 via CALCITE-1466) to |
| resolve a dependency convergence conflict: calcite-core and calcite-linq4j (1.42) pull 0.9.5 while the |
| transitive avatica-core 1.28.0 pulls 0.9.4. --> |
| <dependency> |
| <groupId>org.jooq</groupId> |
| <artifactId>joou-java-6</artifactId> |
| <version>${joou.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.codehaus.janino</groupId> |
| <artifactId>janino</artifactId> |
| <version>${janino.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.janino</groupId> |
| <artifactId>commons-compiler</artifactId> |
| <version>${janino.version}</version> |
| </dependency> |
| |
| <!-- Jersey bom --> |
| <dependency> |
| <groupId>org.glassfish.jersey</groupId> |
| <artifactId>jersey-bom</artifactId> |
| <version>${jersey.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.glassfish.hk2</groupId> |
| <artifactId>hk2-locator</artifactId> |
| <version>${hk2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.hk2</groupId> |
| <artifactId>hk2-metadata-generator</artifactId> |
| <version>${hk2.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>io.swagger</groupId> |
| <artifactId>swagger-jersey2-jaxrs</artifactId> |
| <version>${swagger.version}</version> |
| </dependency> |
| <!-- Also used by pulsar-common --> |
| <dependency> |
| <groupId>io.swagger</groupId> |
| <artifactId>swagger-annotations</artifactId> |
| <version>${swagger.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.webjars</groupId> |
| <artifactId>swagger-ui</artifactId> |
| <version>${swagger-ui.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>info.picocli</groupId> |
| <artifactId>picocli</artifactId> |
| <version>${picocli.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.glassfish.tyrus.bundles</groupId> |
| <artifactId>tyrus-standalone-client</artifactId> |
| <version>${tyrus-standalone-client.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>net.sf.jopt-simple</groupId> |
| <artifactId>jopt-simple</artifactId> |
| <version>${jopt-simple.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.reflections</groupId> |
| <artifactId>reflections</artifactId> |
| <version>${reflections.version}</version> |
| </dependency> |
| <!-- geo dependencies --> |
| <dependency> |
| <groupId>org.locationtech.jts</groupId> |
| <artifactId>jts-core</artifactId> |
| <version>${jts.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.uber</groupId> |
| <artifactId>h3</artifactId> |
| <version>${h3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.github.seancfoley</groupId> |
| <artifactId>ipaddress</artifactId> |
| <version>${ipaddress.version}</version> |
| </dependency> |
| |
| <!-- chronicle bom --> |
| <dependency> |
| <groupId>net.openhft</groupId> |
| <artifactId>chronicle-bom</artifactId> |
| <version>${openhft.chronicle-bom.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.yscope.clp</groupId> |
| <artifactId>clp-ffi</artifactId> |
| <version>${clp-ffi.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.woodstox</groupId> |
| <artifactId>stax2-api</artifactId> |
| <version>${stax2-api.version}</version> |
| </dependency> |
| |
| <!-- ayza bom --> |
| <dependency> |
| <groupId>io.github.hakky54</groupId> |
| <artifactId>ayza-bom</artifactId> |
| <version>${ayza.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.mindrot</groupId> |
| <artifactId>jbcrypt</artifactId> |
| <version>${jbcrypt.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang.modules</groupId> |
| <artifactId>scala-xml_${scala.compat.version}</artifactId> |
| <version>${scala-xml.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-classworlds</artifactId> |
| <version>${plexus-classworlds.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.github.os72</groupId> |
| <artifactId>protobuf-dynamic</artifactId> |
| <version>${protobuf-dynamic.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>cloud.localstack</groupId> |
| <artifactId>localstack-utils</artifactId> |
| <version>${localstack-utils.version}</version> |
| </dependency> |
| |
| <!-- AWS SDK --> |
| <dependency> |
| <groupId>software.amazon.awssdk</groupId> |
| <artifactId>bom</artifactId> |
| <version>${aws.sdk.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Azure SDK --> |
| <dependency> |
| <groupId>com.azure</groupId> |
| <artifactId>azure-sdk-bom</artifactId> |
| <version>${azure.sdk.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.microsoft.azure</groupId> |
| <artifactId>msal4j</artifactId> |
| <version>${azure.msal4j.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-library</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-reflect</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka-clients</artifactId> |
| <version>${kafka3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka_${scala.compat.version}</artifactId> |
| <version>${kafka3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka_${scala.compat.version}</artifactId> |
| <version>${kafka3.version}</version> |
| <classifier>test</classifier> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka-clients</artifactId> |
| <version>${kafka3.version}</version> |
| <classifier>test</classifier> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.kafka</groupId> |
| <artifactId>kafka-server-common</artifactId> |
| <version>${kafka3.version}</version> |
| <classifier>test</classifier> |
| </dependency> |
| |
| <dependency> |
| <groupId>io.confluent</groupId> |
| <artifactId>kafka-schema-registry-client</artifactId> |
| <version>${confluent.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.confluent</groupId> |
| <artifactId>kafka-avro-serializer</artifactId> |
| <version>${confluent.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.confluent</groupId> |
| <artifactId>kafka-protobuf-serializer</artifactId> |
| <version>${confluent.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.confluent</groupId> |
| <artifactId>kafka-json-schema-serializer</artifactId> |
| <version>${confluent.version}</version> |
| </dependency> |
| |
| <!-- pulsar bom --> |
| <dependency> |
| <groupId>org.apache.pulsar</groupId> |
| <artifactId>pulsar-bom</artifactId> |
| <version>${pulsar.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Flink --> |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-clients</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-streaming-java</artifactId> |
| <version>${flink.version}</version> |
| </dependency> |
| |
| <!-- Spark --> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-core_${scala.compat.version}</artifactId> |
| <version>${spark3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-sql_${scala.compat.version}</artifactId> |
| <version>${spark3.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-launcher_${scala.compat.version}</artifactId> |
| <version>${spark3.version}</version> |
| </dependency> |
| |
| <!-- Lucene --> |
| <dependency> |
| <groupId>org.apache.lucene</groupId> |
| <artifactId>lucene-backward-codecs</artifactId> |
| <version>${lucene.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.lucene</groupId> |
| <artifactId>lucene-core</artifactId> |
| <version>${lucene.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.lucene</groupId> |
| <artifactId>lucene-queryparser</artifactId> |
| <version>${lucene.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.lucene</groupId> |
| <artifactId>lucene-analysis-common</artifactId> |
| <version>${lucene.version}</version> |
| </dependency> |
| |
| <!-- For Dependency Verifier module --> |
| <dependency> |
| <groupId>org.apache.maven.enforcer</groupId> |
| <artifactId>enforcer-api</artifactId> |
| <version>${enforcer-api.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven</groupId> |
| <artifactId>maven-core</artifactId> |
| <version>${maven.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jdom</groupId> |
| <artifactId>jdom2</artifactId> |
| <version>${jdom2.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-utils</artifactId> |
| <version>${plexus-utils.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-xml</artifactId> |
| <version>${plexus-xml.version}</version> |
| </dependency> |
| |
| <!-- Solve conflicts and vulnerabilities --> |
| <!-- Dependencies in Hadoop libraries --> |
| <dependency> |
| <groupId>org.apache.kerby</groupId> |
| <artifactId>kerby-bom</artifactId> |
| <version>${kerby.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.jline</groupId> |
| <artifactId>jline</artifactId> |
| <version>${jline.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.wildfly.common</groupId> |
| <artifactId>wildfly-common</artifactId> |
| <version>${wildfly.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.codehaus.jettison</groupId> |
| <artifactId>jettison</artifactId> |
| <version>${jettison.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.nimbusds</groupId> |
| <artifactId>nimbus-jose-jwt</artifactId> |
| <version>${nimbus-jose-jwt.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>dnsjava</groupId> |
| <artifactId>dnsjava</artifactId> |
| <version>${dnsjava.version}</version> |
| </dependency> |
| <!-- Eclipse jetty dependencies in Hadoop/Spark/Pulsar --> |
| <dependency> |
| <groupId>org.eclipse.jetty.websocket</groupId> |
| <artifactId>websocket-client</artifactId> |
| <version>${eclipse.jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| <version>${eclipse.jetty.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-webapp</artifactId> |
| <version>${eclipse.jetty.version}</version> |
| </dependency> |
| |
| <!-- jetty bom --> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-bom</artifactId> |
| <version>${eclipse.jetty.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Used by Hadoop and Jackson --> |
| <dependency> |
| <groupId>com.fasterxml.woodstox</groupId> |
| <artifactId>woodstox-core</artifactId> |
| <version>${woodstox.version}</version> |
| </dependency> |
| <!-- Used by Hadoop and Spark --> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-client</artifactId> |
| <version>${curator.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| <version>${curator.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-recipes</artifactId> |
| <version>${curator.version}</version> |
| </dependency> |
| |
| <!-- Used by reflections and jersey-hk2 --> |
| <dependency> |
| <groupId>org.javassist</groupId> |
| <artifactId>javassist</artifactId> |
| <version>${javassist.version}</version> |
| </dependency> |
| <!-- Bouncy Castle libraries are used by Hadoop/Kafka/Pulsar --> |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcpkix-jdk18on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcprov-jdk18on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.bouncycastle</groupId> |
| <artifactId>bcutil-jdk18on</artifactId> |
| <version>${bouncycastle.version}</version> |
| </dependency> |
| <!-- Used by ORC, Parquet and Pulsar --> |
| <dependency> |
| <groupId>io.airlift</groupId> |
| <artifactId>aircompressor</artifactId> |
| <version>${aircompressor.version}</version> |
| </dependency> |
| <!-- Native access libraries --> |
| <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.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.github.jnr</groupId> |
| <artifactId>jnr-ffi</artifactId> |
| <version>${jnr-ffi.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.github.jnr</groupId> |
| <artifactId>jnr-constants</artifactId> |
| <version>${jnr-constants.version}</version> |
| </dependency> |
| <!-- Used by jnr-ffi and json-smart --> |
| <dependency> |
| <groupId>org.ow2.asm</groupId> |
| <artifactId>asm</artifactId> |
| <version>${asm.version}</version> |
| </dependency> |
| <!-- Used by Jackson and Spark --> |
| <dependency> |
| <groupId>com.thoughtworks.paranamer</groupId> |
| <artifactId>paranamer</artifactId> |
| <version>${paranamer.version}</version> |
| </dependency> |
| <!-- Dependencies in Confluent Kafka libraries --> |
| <!-- kotlin bom --> |
| <dependency> |
| <groupId>org.jetbrains.kotlin</groupId> |
| <artifactId>kotlin-bom</artifactId> |
| <version>${kotlin.stdlib.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- okio bom --> |
| <dependency> |
| <groupId>com.squareup.okio</groupId> |
| <artifactId>okio-bom</artifactId> |
| <version>${okio.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <!-- Used in async-http-client and orc-core --> |
| <dependency> |
| <groupId>org.jetbrains</groupId> |
| <artifactId>annotations</artifactId> |
| <version>${jetbrains.annotations.version}</version> |
| </dependency> |
| <!-- Used in Spark and Flink --> |
| <dependency> |
| <groupId>com.esotericsoftware.kryo</groupId> |
| <artifactId>kryo</artifactId> |
| <version>${kryo.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.objenesis</groupId> |
| <artifactId>objenesis</artifactId> |
| <version>${objenesis.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>chill-java</artifactId> |
| <version>${chill.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>chill_2.11</artifactId> |
| <version>${chill.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>chill_${scala.compat.version}</artifactId> |
| <version>${chill.version}</version> |
| </dependency> |
| <!-- Used by Spark and quartz --> |
| <dependency> |
| <groupId>com.zaxxer</groupId> |
| <artifactId>HikariCP-java7</artifactId> |
| <version>${HikariCP-java7.version}</version> |
| </dependency> |
| <!-- Used by Spark --> |
| <dependency> |
| <groupId>org.apache.ivy</groupId> |
| <artifactId>ivy</artifactId> |
| <version>${ivy.version}</version> |
| </dependency> |
| <!-- Used by quartz --> |
| <dependency> |
| <groupId>com.mchange</groupId> |
| <artifactId>c3p0</artifactId> |
| <version>${c3p0.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.mchange</groupId> |
| <artifactId>mchange-commons-java</artifactId> |
| <version>${mchange-commons-java.version}</version> |
| </dependency> |
| <!-- Used by grpc-netty-shade and google-cloud-storage --> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>animal-sniffer-annotations</artifactId> |
| <version>${animal-sniffer-annotations.version}</version> |
| </dependency> |
| |
| <!-- Test Libraries --> |
| <dependency> |
| <groupId>org.testng</groupId> |
| <artifactId>testng</artifactId> |
| <version>${testng.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-api</artifactId> |
| <version>${junit-jupiter-api.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- mockito bom --> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-bom</artifactId> |
| <version>${mockito-core.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>nl.jqno.equalsverifier</groupId> |
| <artifactId>equalsverifier</artifactId> |
| <version>${equalsverifier.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- testcontainers bom --> |
| <dependency> |
| <groupId>org.testcontainers</groupId> |
| <artifactId>testcontainers-bom</artifactId> |
| <version>${testcontainers.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.h2database</groupId> |
| <artifactId>h2</artifactId> |
| <version>${h2.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.github.jnr</groupId> |
| <artifactId>jnr-posix</artifactId> |
| <version>${jnr-posix.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.scalatest</groupId> |
| <artifactId>scalatest_${scala.compat.version}</artifactId> |
| <version>${scalatest.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- assertj bom --> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-bom</artifactId> |
| <version>${assertj.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <defaultGoal>clean install</defaultGoal> |
| |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <version>3.0.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <java> |
| <includes> |
| <include>src/main/java/**/*.java</include> |
| <include>src/test/java/**/*.java</include> |
| </includes> |
| <importOrder> |
| <order>,\#</order> |
| </importOrder> |
| <removeUnusedImports /> |
| </java> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>appassembler-maven-plugin</artifactId> |
| <version>2.1.0</version> |
| <configuration> |
| <binFileExtensions> |
| <unix>.sh</unix> |
| </binFileExtensions> |
| <!-- Set the target configuration directory to be used in the bin scripts --> |
| <configurationDirectory>conf</configurationDirectory> |
| <!-- Copy the contents from "/src/main/config" to the target configuration directory in the assembled application --> |
| <copyConfigurationDirectory>false</copyConfigurationDirectory> |
| <!-- Include the target configuration directory in the beginning of the classpath declaration in the bin scripts --> |
| <includeConfigurationDirectoryInClasspath>false</includeConfigurationDirectoryInClasspath> |
| <assembleDirectory>${project.build.directory}/${project.artifactId}-pkg</assembleDirectory> |
| <!-- Extra JVM arguments that will be included in the bin scripts --> |
| <extraJvmArguments>-Xms1024m -Xmx1024m</extraJvmArguments> |
| <!-- Generate bin scripts for windows and unix pr default --> |
| <platforms> |
| <platform>windows</platform> |
| <platform>unix</platform> |
| </platforms> |
| <repositoryLayout>flat</repositoryLayout> |
| <repositoryName>lib</repositoryName> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>assemble</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <!-- Remove this after fixing all javadoc warnings --> |
| <doclint>none</doclint> |
| <source>${jdk.version}</source> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.8.15</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <archive> |
| <manifestEntries> |
| <Implementation-Title>${project.artifactId}</Implementation-Title> |
| <Implementation-Version>${project.version}-${buildNumber}</Implementation-Version> |
| <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id> |
| <Implementation-Vendor>${project.organization.name}</Implementation-Vendor> |
| </manifestEntries> |
| </archive> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <!-- Overridable via -Dunit.test.fork.count (defaults to 1); see the property |
| definition for details. --> |
| <forkCount>${unit.test.fork.count}</forkCount> |
| <reuseForks>false</reuseForks> |
| <!-- Retries a failing test up to N times (default 0); see property definition. --> |
| <rerunFailingTestsCount>${unit.test.rerun.count}</rerunFailingTestsCount> |
| <!-- 60 minutes --> |
| <forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds> |
| <!-- Disable zookeeper force sync --> |
| <systemPropertyVariables> |
| <zookeeper.forceSync>no</zookeeper.forceSync> |
| <!-- Expose the 1-based fork index so tests can offset port bases / temp dirs per |
| fork (1 even at forkCount=1, 1..N under parallel forks). --> |
| <surefire.forkNumber>$${surefire.forkNumber}</surefire.forkNumber> |
| </systemPropertyVariables> |
| <trimStackTrace>false</trimStackTrace> |
| <reportFormat>plain</reportFormat> |
| <argLine> |
| @{argLine} |
| --add-opens=java.base/java.nio=ALL-UNNAMED |
| --add-opens=java.base/sun.nio.ch=ALL-UNNAMED |
| --add-opens=java.base/java.lang=ALL-UNNAMED |
| --add-opens=java.base/java.util=ALL-UNNAMED |
| --add-exports=java.base/jdk.internal.util.random=ALL-UNNAMED |
| --add-opens=java.base/java.lang.reflect=ALL-UNNAMED |
| --add-opens=java.base/jdk.internal.misc=ALL-UNNAMED |
| -Dio.netty.tryReflectionSetAccessible=true |
| -Dio.grpc.netty.shaded.io.netty.tryReflectionSetAccessible=true |
| -Dnet.bytebuddy.experimental=true |
| -javaagent:${settings.localRepository}/org/mockito/mockito-core/${mockito-core.version}/mockito-core-${mockito-core.version}.jar |
| -Xshare:off |
| -XX:+EnableDynamicAgentLoading |
| </argLine> |
| </configuration> |
| <!-- Explicitly select the test provider, instead of relying on the classpath --> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.maven.surefire</groupId> |
| <artifactId>surefire-testng</artifactId> |
| <version>${surefire.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>default-cli</id> <!-- magic id, used when calling enforcer:enforce --> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <phase>validate</phase> |
| <configuration> |
| <rules> |
| <dependencyConvergence /> |
| <bannedDependencies> |
| <excludes> |
| <!-- Use org.slf4j:jcl-over-slf4j --> |
| <exclude>commons-logging:commons-logging</exclude> |
| <!-- Use org.apache.logging.log4j:log4j-core --> |
| <exclude>log4j:log4j</exclude> |
| <!-- Use org.apache.logging.log4j:log4j-slf4j2-impl --> |
| <exclude>org.slf4j:slf4j-log4j12</exclude> |
| <exclude>org.slf4j:slf4j-reload4j</exclude> |
| <exclude>ch.qos.reload4j:reload4j</exclude> |
| <exclude>ch.qos.logback</exclude> |
| <!-- Use com.fasterxml.jackson --> |
| <exclude>org.codehaus.jackson</exclude> |
| <!-- Use org.glassfish.jersey --> |
| <exclude>com.sun.jersey</exclude> |
| <!-- Use hadoop-shaded-protobuf_3_21 --> |
| <exclude>org.apache.hadoop.thirdparty:hadoop-shaded-protobuf_3_7</exclude> |
| <!-- Use org.bouncycastle:bcprov-jdk18on --> |
| <exclude>org.bouncycastle:bcprov-jdk15on</exclude> |
| <!-- Use at.yawk.lz4:lz4-java --> |
| <exclude>org.lz4:lz4-java</exclude> |
| </excludes> |
| </bannedDependencies> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.mycila</groupId> |
| <artifactId>license-maven-plugin</artifactId> |
| <version>5.1.2</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>buildnumber-maven-plugin</artifactId> |
| <version>3.3.0</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>versions-maven-plugin</artifactId> |
| <version>2.21.0</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-release-plugin</artifactId> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.maven.scm</groupId> |
| <artifactId>maven-scm-provider-gitexe</artifactId> |
| <version>2.2.1</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <autoVersionSubmodules>true</autoVersionSubmodules> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.xolstice.maven.plugins</groupId> |
| <artifactId>protobuf-maven-plugin</artifactId> |
| <version>0.6.1</version> |
| <configuration> |
| <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact> |
| <pluginId>grpc-java</pluginId> |
| <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>compile</goal> |
| <goal>compile-custom</goal> |
| <goal>test-compile</goal> |
| <goal>test-compile-custom</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <release>${jdk.version}</release> |
| <source>${jdk.version}</source> |
| <target>${jdk.version}</target> |
| <fork>true</fork> |
| <encoding>${project.build.sourceEncoding}</encoding> |
| <annotationProcessorPaths> |
| <path> |
| <groupId>org.glassfish.hk2</groupId> |
| <artifactId>hk2-metadata-generator</artifactId> |
| </path> |
| <path> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-core</artifactId> |
| </path> |
| <path> |
| <groupId>com.google.auto.service</groupId> |
| <artifactId>auto-service</artifactId> |
| <version>${google.auto-service.version}</version> |
| </path> |
| <path> |
| <groupId>org.immutables</groupId> |
| <artifactId>value-processor</artifactId> |
| <version>${immutables.version}</version> |
| </path> |
| </annotationProcessorPaths> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>javacc-maven-plugin</artifactId> |
| <version>3.2.0</version> |
| <dependencies> |
| <dependency> |
| <groupId>net.java.dev.javacc</groupId> |
| <artifactId>javacc</artifactId> |
| <!-- Higher version JavaCC throws exception when generating custom Calcite parser --> |
| <version>5.0</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>net.alchim31.maven</groupId> |
| <artifactId>scala-maven-plugin</artifactId> |
| <version>4.9.10</version> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sourceDir>src/main/java</sourceDir> |
| </configuration> |
| </execution> |
| <execution> |
| <id>scala-compile-first</id> |
| <phase>process-resources</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>scala-test-compile-first</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>testCompile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>attach-scaladocs</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>doc-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <scalaVersion>${scala.version}</scalaVersion> |
| <release>${jdk.version}</release> |
| <source>${jdk.version}</source> |
| <target>${jdk.version}</target> |
| <args> |
| <arg>-unchecked</arg> |
| <arg>-deprecation</arg> |
| <arg>-feature</arg> |
| </args> |
| <jvmArgs> |
| <jvmArg>-Xms1024m</jvmArg> |
| <jvmArg>-Xmx1024m</jvmArg> |
| </jvmArgs> |
| <javacArgs> |
| <javacArg>-Xlint:all,-serial,-path</javacArg> |
| </javacArgs> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.scalatest</groupId> |
| <artifactId>scalatest-maven-plugin</artifactId> |
| <version>2.2.0</version> |
| <configuration> |
| <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> |
| <junitxml>.</junitxml> |
| <parallel>false</parallel> |
| </configuration> |
| <executions> |
| <execution> |
| <id>test</id> |
| <goals> |
| <goal>test</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>3.6.1</version> |
| </plugin> |
| <plugin> |
| <groupId>com.github.eirslett</groupId> |
| <artifactId>frontend-maven-plugin</artifactId> |
| <version>1.15.4</version> |
| </plugin> |
| <plugin> |
| <groupId>net.nicoulaj.maven.plugins</groupId> |
| <artifactId>checksum-maven-plugin</artifactId> |
| <version>1.11</version> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>3.6.3</version> |
| </plugin> |
| <plugin> |
| <groupId>org.eclipse.sisu</groupId> |
| <artifactId>sisu-maven-plugin</artifactId> |
| <version>1.1.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>main-index</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>enforce-java-version</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <requireJavaVersion> |
| <version>[25,)</version> |
| <message>Apache Pinot requires JDK 25 or newer to build.</message> |
| </requireJavaVersion> |
| </rules> |
| <fail>true</fail> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <configuration> |
| <configLocation>${pinot.root}/config/checkstyle.xml</configLocation> |
| <suppressionsLocation>${pinot.root}/config/suppressions.xml</suppressionsLocation> |
| <propertyExpansion>config_loc=${pinot.root}/config</propertyExpansion> |
| <logViolationsToConsole>true</logViolationsToConsole> |
| <violationSeverity>${checkstyle.violation.severity}</violationSeverity> |
| <failOnViolation>${checkstyle.fail.on.violation}</failOnViolation> |
| <includeTestSourceDirectory>true</includeTestSourceDirectory> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>com.puppycrawl.tools</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>14.1.0</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <id>checkstyle</id> |
| <phase>validate</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <!-- |
| Configuration for unit/integration tests section 2 of 3 (plugins) STARTS HERE. |
| This is the core piece for being able to manage unit tests and |
| integration (='system') tests within Maven by using surefire. |
| See also: properties section and profiles section. |
| --> |
| <configuration> |
| <testFailureIgnore>false</testFailureIgnore> |
| <!-- Excludes integration tests when unit tests are run. --> |
| <excludes> |
| <exclude>**/*IT.java</exclude> |
| </excludes> |
| <!-- forkCount is overridable via -Dunit.test.fork.count (defaults to 1). Each |
| fork runs a distinct test class (reuseForks=false), so raising the count |
| parallelizes classes across JVMs while preserving class-level isolation. --> |
| <forkCount>${unit.test.fork.count}</forkCount> |
| <reuseForks>false</reuseForks> |
| <!-- Retries a failing test up to N times before marking it failed (default 0 = no |
| retry). CI sets this to tolerate a handful of pre-existing load-sensitive flaky |
| tests (Lucene NRT refresh, filesystem mtime) that surface only when many parallel |
| forks saturate the runner; a test that passes on retry is reported as flaky, not |
| green-washed. --> |
| <rerunFailingTestsCount>${unit.test.rerun.count}</rerunFailingTestsCount> |
| <properties> |
| <!-- Surefire is the default report writer; modules can explicitly opt into an isolated |
| reporter. TestNG's native HTML/XML reporters write shared files and assets, which |
| race when multiple forks use one module. --> |
| <property> |
| <name>usedefaultlisteners</name> |
| <value>false</value> |
| </property> |
| </properties> |
| <systemPropertyVariables> |
| <!-- Expose the 1-based fork index (1 even at forkCount=1, 1..N under parallel forks) |
| so tests can offset port bases / temp dirs per fork (see ZkStarter.FORK_PORT_OFFSET, |
| ControllerTest port bases). --> |
| <surefire.forkNumber>$${surefire.forkNumber}</surefire.forkNumber> |
| </systemPropertyVariables> |
| </configuration> |
| <executions> |
| <execution> |
| <id>integration-tests</id> |
| <phase>integration-test</phase> |
| <goals> |
| <goal>test</goal> |
| </goals> |
| <configuration> |
| <skip>${SKIP_INTEGRATION_TESTS}</skip> |
| <excludes> |
| <exclude>none</exclude> |
| </excludes> |
| <includes> |
| <include>**/*IT.java</include> |
| </includes> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <!-- Default configuration for all reports --> |
| <excludePackageNames>protobuf.grpc-java.org.apache.pinot.common.proto</excludePackageNames> |
| </configuration> |
| <executions> |
| <execution> |
| <id>aggregate</id> |
| <goals> |
| <goal>aggregate</goal> |
| </goals> |
| <phase>site</phase> |
| <configuration> |
| <!-- Specific configuration for the aggregate report --> |
| <excludePackageNames> |
| org.apache.pinot.common.request:org.apache.pinot.common.response |
| </excludePackageNames> |
| <skip>false</skip> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>com.mycila</groupId> |
| <artifactId>license-maven-plugin</artifactId> |
| <configuration> |
| <licenseSets> |
| <licenseSet> |
| <header>${pinot.root}/HEADER</header> |
| <headerDefinitions> |
| <headerDefinition>${pinot.root}/headerdefinition.xml</headerDefinition> |
| </headerDefinitions> |
| <excludes> |
| <!-- Text and log files --> |
| <exclude>**/*.txt</exclude> |
| <exclude>**/*.log</exclude> |
| <exclude>**/*.list</exclude> |
| <exclude>**/*.out</exclude> |
| <exclude>**/*.generated</exclude> |
| <exclude>**/*.json</exclude> |
| <exclude>**/*.schema</exclude> |
| <exclude>**/*.sql</exclude> |
| |
| <!-- JDBC Drivers --> |
| <exclude>**/java.sql.*</exclude> |
| |
| <!-- Spark datasource register --> |
| <exclude>**/org.apache.spark.sql.sources.DataSourceRegister</exclude> |
| |
| <!-- Binary files --> |
| <exclude>**/*.avro</exclude> |
| <exclude>**/*.avsc</exclude> |
| <exclude>**/*.csv</exclude> |
| <exclude>**/*.desc</exclude> |
| <exclude>**/*.fst</exclude> |
| <exclude>**/*.parquet</exclude> |
| <exclude>**/*.gz</exclude> |
| <exclude>**/*.gzip</exclude> |
| <exclude>**/*.orc</exclude> |
| <exclude>**/*.dict</exclude> |
| <exclude>**/*.raw</exclude> |
| <exclude>**/*.mapping</exclude> |
| <exclude>**/*.ser</exclude> |
| <exclude>**/*.v1</exclude> |
| <exclude>**/*.v2</exclude> |
| <exclude>**/*.parq</exclude> |
| <exclude>**/*.parquet.encrypted</exclude> |
| |
| <!-- Pinot index files --> |
| <exclude>**/index_map</exclude> |
| <exclude>**/star_tree_index</exclude> |
| <exclude>**/star_tree_index_map</exclude> |
| |
| <!-- Auto-generated target directories --> |
| <exclude>target/**</exclude> |
| <exclude>pinot-*/target/**</exclude> |
| |
| <!-- Docker and Kubernetes (not part of the distribution) --> |
| <exclude>docker/**</exclude> |
| <exclude>helm/**</exclude> |
| |
| <!-- Pinot-Druid Benchmark (not part of the distribution) --> |
| <exclude>contrib/**</exclude> |
| |
| <!-- Top level files --> |
| <exclude>HEADER</exclude> |
| <exclude>LICENSE*</exclude> |
| <exclude>NOTICE*</exclude> |
| <exclude>.trivyignore</exclude> |
| <exclude>doap_Pinot.rdf</exclude> |
| |
| <!-- js, css files that are exact copies of the third-party works. In this case, the original header has to |
| be kept. Please refer to 'Treatment of Third-party works' in https://www.apache.org/legal/src-headers.html |
| --> |
| <exclude>**/node_modules/**</exclude> |
| <exclude>**/dist/**</exclude> |
| <exclude>**/src/main/resources/*.*rc</exclude> |
| |
| <!-- files from Eclipse --> |
| <exclude>**/maven-eclipse.xml</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.project</exclude> |
| <exclude>**/.classpath</exclude> |
| <exclude>.externalToolBuilders/**</exclude> |
| |
| <!-- Knowledge base (not source code) --> |
| <exclude>kb/**</exclude> |
| |
| <!-- GenAI Config files --> |
| <exclude>.claude/**</exclude> |
| <exclude>.codex/**</exclude> |
| <exclude>.continue/**</exclude> |
| <exclude>.copilot/**</exclude> |
| <exclude>.cursor/**</exclude> |
| <exclude>.openai/**</exclude> |
| <exclude>.ollama/**</exclude> |
| |
| <!-- specific files --> |
| <exclude>**/src/test/resources/*version-header.properties</exclude> |
| </excludes> |
| </licenseSet> |
| </licenseSets> |
| <mapping> |
| <java>JAVADOC_STYLE</java> |
| <scala>JAVADOC_STYLE</scala> |
| <thrift>JAVADOC_STYLE</thrift> |
| <jj>JAVADOC_STYLE</jj> |
| <ts>JAVADOC_STYLE</ts> |
| <tsx>JAVADOC_STYLE</tsx> |
| <config>SCRIPT_STYLE</config> |
| <queries>SCRIPT_STYLE</queries> |
| <results>SCRIPT_STYLE</results> |
| <fmpp>SCRIPT_STYLE</fmpp> |
| <ftl>FTL_STYLE</ftl> |
| <MockMaker>SCRIPT_STYLE</MockMaker> |
| <appAssemblerScriptTemplate>SCRIPT_STYLE</appAssemblerScriptTemplate> |
| <inc>SCRIPT_STYLE</inc> |
| <sql>SCRIPT_STYLE</sql> |
| <conf>DOUBLESLASH_STYLE</conf> |
| <cfg>DOUBLESLASH_STYLE</cfg> |
| <proto>DOUBLESLASH_STYLE</proto> |
| <rst>RST_STYLE</rst> |
| <readme>RST_STYLE</readme> |
| </mapping> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <excludes> |
| <!-- Exclude license copies --> |
| <exclude>licenses/**</exclude> |
| <exclude>licenses-binary/**</exclude> |
| |
| <!-- Exclude build targets --> |
| <exclude>**/target/**</exclude> |
| |
| <!-- Exclude Maven plugin generated files --> |
| <exclude>**/dependency-reduced-pom.xml</exclude> |
| |
| <!-- Text and log files --> |
| <exclude>**/*.txt</exclude> |
| <exclude>**/*.log</exclude> |
| <exclude>**/*.list</exclude> |
| <exclude>**/*.out</exclude> |
| <exclude>**/*.generated</exclude> |
| <exclude>**/*.json</exclude> |
| <exclude>**/*.schema</exclude> |
| <exclude>**/*.sql</exclude> |
| |
| <!-- JDBC Drivers --> |
| <exclude>**/java.sql.*</exclude> |
| |
| <!-- Spark datasource register --> |
| <exclude>**/org.apache.spark.sql.sources.DataSourceRegister</exclude> |
| |
| <!-- Binary files --> |
| <exclude>**/*.avro</exclude> |
| <exclude>**/*.avsc</exclude> |
| <exclude>**/*.csv</exclude> |
| <exclude>**/*.desc</exclude> |
| <exclude>**/*.fst</exclude> |
| <exclude>**/*.parquet</exclude> |
| <exclude>**/*.gz</exclude> |
| <exclude>**/*.orc</exclude> |
| <exclude>**/*.dict</exclude> |
| <exclude>**/*.raw</exclude> |
| <exclude>**/*.mapping</exclude> |
| <exclude>**/*.ser</exclude> |
| <exclude>**/*.v1</exclude> |
| <exclude>**/*.v2</exclude> |
| <exclude>**/Text.lucene.index/**</exclude> |
| <exclude>**/appAssemblerScriptTemplate</exclude> |
| <exclude>doap_Pinot.rdf</exclude> |
| |
| <!-- js, css files that are exact copies of the third-party works. In this case, the original header has to |
| be kept. Please refer to 'Treatment of Third-party works' in https://www.apache.org/legal/src-headers.html |
| --> |
| <exclude>**/node_modules/**</exclude> |
| <exclude>**/dist/**</exclude> |
| <exclude>**/*.*rc</exclude> |
| <exclude>**/src/main/resources/*.*rc</exclude> |
| |
| <!-- IDE files --> |
| <exclude>**/*.iml</exclude> |
| <exclude>**/maven-eclipse.xml</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.project</exclude> |
| <exclude>**/.classpath</exclude> |
| <exclude>.externalToolBuilders/**</exclude> |
| |
| <!-- Knowledge base (not source code) --> |
| <exclude>kb/**</exclude> |
| |
| <!-- GenAI Config files --> |
| <exclude>.claude/**</exclude> |
| <exclude>.codex/**</exclude> |
| <exclude>.continue/**</exclude> |
| <exclude>.copilot/**</exclude> |
| <exclude>.cursor/**</exclude> |
| <exclude>.openai/**</exclude> |
| <exclude>.ollama/**</exclude> |
| |
| <!-- Docker and Kubernetes (not part of the distribution) --> |
| <exclude>helm/**</exclude> |
| <exclude>docker/**</exclude> |
| <exclude>.trivyignore</exclude> |
| |
| <!-- Pinot-Druid Benchmark (not part of the distribution) --> |
| <exclude>contrib/**</exclude> |
| |
| <!-- Github template files --> |
| <exclude>.github/*.md</exclude> |
| |
| <!-- Test output --> |
| <exclude>**/test-output/**</exclude> |
| |
| <!-- MISC --> |
| <exclude>**/.factorypath</exclude> |
| |
| <!-- specific files --> |
| <exclude>**/src/test/resources/*version-header.properties</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>buildnumber-maven-plugin</artifactId> |
| <configuration> |
| <skip>${pinot.skip.buildnumber}</skip> |
| </configuration> |
| <executions> |
| <execution> |
| <phase>validate</phase> |
| <goals> |
| <goal>create</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>versions-maven-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId> |
| <version>0.2.0</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <phase>${shade.phase.prop}</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <shadedArtifactAttached>true</shadedArtifactAttached> |
| <createDependencyReducedPom>false</createDependencyReducedPom> |
| <transformers> |
| <!-- See https://logging.apache.org/log4j/transform for details --> |
| <transformer implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer" /> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" /> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> |
| <mainClass>${mainClass}</mainClass> |
| <manifestEntries> |
| <Multi-Release>true</Multi-Release> |
| </manifestEntries> |
| </transformer> |
| </transformers> |
| <filters> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <!-- Exclude signed manifests --> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| |
| <!-- See https://github.com/apache/pinot/issues/11974 for details --> |
| <exclude>module-info.class</exclude> |
| |
| <!-- Solve NoClassDefFoundError. Borrowed from https://github.com/prometheus/jmx_exporter/issues/802 --> |
| <exclude>META-INF/versions/9/org/yaml/snakeyaml/internal/**</exclude> |
| |
| <!-- Exclude NettyInstance because it includes Netty package literals --> |
| <exclude>src/main/java/org/apache/pinot/core/transport/NettyInstance.java</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- hadoop-client-runtime is a Hadoop uber-jar that bundles its own relocated Jetty |
| (org.apache.hadoop.shaded.org.eclipse.jetty). It exists only for Hadoop's embedded |
| HttpServer2 web UIs, which Pinot input-format / filesystem plugins never start, so |
| the classes are unreachable, but the leftover jetty-* Maven metadata still makes |
| scanners flag CVE-2026-2332 (jetty-http request smuggling). A Maven exclusion |
| cannot remove these because the classes are baked into the uber-jar rather than |
| resolved as a dependency node, so strip them from any shaded jar here. --> |
| <artifact>org.apache.hadoop:hadoop-client-runtime</artifact> |
| <excludes> |
| <exclude>org/apache/hadoop/shaded/org/eclipse/jetty/**</exclude> |
| <exclude>META-INF/maven/org.eclipse.jetty/**</exclude> |
| <exclude>META-INF/maven/org.eclipse.jetty.websocket/**</exclude> |
| <!-- ServiceLoader entries whose implementation classes are removed above. --> |
| <exclude>META-INF/services/org.apache.hadoop.shaded.org.eclipse.jetty.**</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| <relocations> |
| <relocation> |
| <pattern>com.fasterxml.jackson</pattern> |
| <shadedPattern>${shade.prefix}.com.fasterxml.jackson</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.google.common</pattern> |
| <shadedPattern>${shade.prefix}.com.google.common</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.scala-lang</pattern> |
| <shadedPattern>${shade.prefix}.org.scala-lang</shadedPattern> |
| </relocation> |
| </relocations> |
| </configuration> |
| </plugin> |
| <!-- Include apache LICENSE, NOTICE files for jar resource bundle --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <configuration> |
| <skip>${pinot.skip.remote.resources}</skip> |
| <properties> |
| <projectName>Apache Pinot</projectName> |
| </properties> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>de.shadowhunt.maven.plugins</groupId> |
| <artifactId>package-info-maven-plugin</artifactId> |
| <version>2.0.0</version> |
| <executions> |
| <execution> |
| <phase>${package.info.phase}</phase> |
| <goals> |
| <goal>package-info</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <packages> |
| <package regex="org.apache.pinot.**"> |
| <annotations> |
| <annotation>@javax.annotation.ParametersAreNonnullByDefault</annotation> |
| <annotation>@org.jspecify.annotations.NullMarked</annotation> |
| </annotations> |
| </package> |
| </packages> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <!-- TODO: Revisit if we need reporting --> |
| <reporting> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jxr-plugin</artifactId> |
| <version>3.6.0</version> |
| <configuration> |
| <aggregate>true</aggregate> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-project-info-reports-plugin</artifactId> |
| <configuration> |
| <dependencyLocationsEnabled>false</dependencyLocationsEnabled> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <configuration> |
| <!-- Default configuration for all reports --> |
| <excludePackageNames>protobuf.grpc-java.org.apache.pinot.common.proto</excludePackageNames> |
| </configuration> |
| <reportSets> |
| <reportSet> |
| <id>non-aggregate</id> |
| <configuration> |
| <!-- Specific configuration for the non aggregate report --> |
| <excludePackageNames> |
| org.apache.pinot.common.request:org.apache.pinot.common.response |
| </excludePackageNames> |
| <skip>true</skip> |
| </configuration> |
| <reports> |
| <report>javadoc</report> |
| </reports> |
| </reportSet> |
| <reportSet> |
| <id>aggregate</id> |
| <configuration> |
| <excludePackageNames> |
| org.apache.pinot.common.request:org.apache.pinot.common.response |
| </excludePackageNames> |
| <skip>true</skip> |
| </configuration> |
| <reports> |
| <report>aggregate</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| </plugins> |
| </reporting> |
| </project> |