blob: 410cd519ba3119315574c00ecc5f43ecda5878ea [file]
<?xml version="1.0"?>
<!--
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>
<artifactId>pinot</artifactId>
<groupId>org.apache.pinot</groupId>
<version>1.6.0-SNAPSHOT</version>
</parent>
<artifactId>pinot-java11-client-verifier</artifactId>
<name>Pinot Java 11 Client Verifier</name>
<url>https://pinot.apache.org/</url>
<packaging>jar</packaging>
<properties>
<pinot.root>${basedir}/..</pinot.root>
<!--
A CI harness, not something a consumer should depend on. Keep it out of the published
artifacts; nothing in the reactor depends on it either.
-->
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- Load-bearing rather than copied boilerplate: .pinot_java11_client_compat.sh launches
this module's own classes on a Java 11 JVM, so its bytecode has to be Java 11 as well.
Hard-coded literal so -Djdk.version=21 on the CLI cannot silently bump the level. -->
<release>11</release>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<!--
Writes the resolved runtime closure of this module (the union of the pinot-java-client and
pinot-jdbc-client closures) to a file, so the CI driver script can hand exactly that
classpath to a Java 11 JVM.
-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>write-runtime-classpath</id>
<phase>prepare-package</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputFile>${project.build.directory}/runtime-classpath.txt</outputFile>
<regenerateFile>true</regenerateFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!-- The two consumer-facing clients. Depending on both makes this module's runtime closure the
union of theirs, which is what gets scanned for bytecode a Java 11 JVM cannot load. -->
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-java-client</artifactId>
</dependency>
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-jdbc-client</artifactId>
</dependency>
<!-- The remaining Java-11-pinned modules. All four already arrive transitively, so declaring
them changes nothing about the closure; it is done because the verifier imports them
directly, and so that dropping one breaks the build instead of silently shrinking coverage.
Java11CompatibilityVerifier also asserts at runtime that all six are on the classpath. -->
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-spi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-segment-spi</artifactId>
</dependency>
<dependency>
<groupId>org.apache.pinot</groupId>
<artifactId>pinot-timeseries-spi</artifactId>
</dependency>
<!-- Third-party types the verifier constructs directly. -->
<dependency>
<groupId>org.apache.helix</groupId>
<artifactId>helix-core</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-api</artifactId>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>