Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build-multi-arch-pinot-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
strategy:
matrix:
arch: [ "amd64", "arm64" ]
base-image-tag: [ "11-amazoncorretto", "11-ms-openjdk" ]
base-image-tag: [ "21-amazoncorretto", "21-ms-openjdk" ]
name: Build Pinot Docker Image on ${{ matrix.arch }} with base image ${{ matrix.base-image-tag }}
needs: [ generate-build-info ]
steps:
Expand Down Expand Up @@ -104,5 +104,5 @@ jobs:
env:
TAGS: "${{needs.generate-build-info.outputs.tags}}"
BUILD_PLATFORM: "linux/arm64,linux/amd64"
BASE_IMAGE_TAGS: "11-amazoncorretto,11-ms-openjdk"
BASE_IMAGE_TAGS: "21-amazoncorretto,21-ms-openjdk"
run: .github/workflows/scripts/docker/.pinot_multi_arch_docker_image_manifest_package.sh
2 changes: 1 addition & 1 deletion .github/workflows/build-pinot-base-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,5 @@ jobs:
OPEN_JDK_DIST: ${{ matrix.openJdkDist }}
BASE_IMAGE_TYPE: ${{ matrix.baseImageType }}
BUILD_PLATFORM: "linux/amd64,linux/arm64"
TAG: "11-${{ matrix.openJdkDist }}"
TAG: "21-${{ matrix.openJdkDist }}"
run: .github/workflows/scripts/docker/.pinot_base_docker_image_build_and_push.sh
4 changes: 2 additions & 2 deletions .github/workflows/pinot_compatibility_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ jobs:
name: Pinot Compatibility Regression Testing against ${{ github.event.inputs.oldCommit }} and ${{ github.event.inputs.newCommit }} on ${{ matrix.test_suite }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Setup node
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ jobs:
name: Pinot Multi-Stage Query Engine Compatibility Regression Testing against ${{ github.event.inputs.oldCommit }} and ${{ github.event.inputs.newCommit }} on ${{ matrix.test_suite }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Setup node
Expand Down
33 changes: 21 additions & 12 deletions .github/workflows/pinot_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ jobs:
name: Pinot Linter Test Set
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Install pinot-dependency-verifier into repo
Expand Down Expand Up @@ -100,10 +100,12 @@ jobs:
name: Pinot Binary Compatibility Check
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 11
java-version: |
11
21
distribution: 'temurin'
cache: 'maven'
# Step that does that actual cache save and restore
Expand Down Expand Up @@ -178,15 +180,20 @@ jobs:
fail-fast: false
matrix:
testset: [ 1, 2 ]
java: [ 11, 21 ]
java: |
21
# 25 # Disable Java 25 tests until we fix the Datasketches compatibility
distribution: [ "temurin" ]
name: Pinot Unit Test Set ${{ matrix.testset }} (${{matrix.distribution}}-${{matrix.java}})
steps:
- uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}-${{ matrix.distribution }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
java-version: |
11
21
25
distribution: ${{ matrix.distribution }}
cache: 'maven'
# Step that does that actual cache save and restore
Expand Down Expand Up @@ -323,7 +330,9 @@ jobs:
- name: Set up JDK ${{ matrix.java }}-${{ matrix.distribution }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
java-version: |
11
${{ matrix.java }}
distribution: ${{ matrix.distribution }}
cache: 'maven'
# Step that does that actual cache save and restore
Expand Down Expand Up @@ -489,10 +498,10 @@ jobs:
name: Pinot Compatibility Regression Testing against ${{ matrix.old_commit }} on ${{ matrix.test_suite }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Setup node
Expand Down Expand Up @@ -554,10 +563,10 @@ jobs:
name: Pinot Multi-Stage Query Engine Compatibility Regression Testing against ${{ matrix.old_commit }} on ${{ matrix.test_suite }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 11
java-version: 21
distribution: 'temurin'
cache: 'maven'
- name: Setup node
Expand Down Expand Up @@ -612,7 +621,7 @@ jobs:
# Changed to false in order to improve coverage using unsafe buffers
fail-fast: false
matrix:
java: [ 11, 21 ]
java: [ 21, 25 ]
distribution: [ "temurin" ]
name: Pinot Quickstart on JDK ${{ matrix.java }}-${{ matrix.distribution }}
steps:
Expand Down
1 change: 1 addition & 0 deletions pinot-clients/pinot-java-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<shade.phase.prop>package</shade.phase.prop>
<jdk.version>11</jdk.version>
</properties>
<build>
<resources>
Expand Down
1 change: 1 addition & 0 deletions pinot-clients/pinot-jdbc-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<jdk.version>11</jdk.version>
</properties>
<build>
<resources>
Expand Down
2 changes: 2 additions & 0 deletions pinot-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<properties>
<pinot.root>${basedir}/..</pinot.root>
<thrift.bin.path>/usr/local/bin/thrift</thrift.bin.path>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<build>
Expand Down
2 changes: 2 additions & 0 deletions pinot-connectors/pinot-flink-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<dependencies>
Expand Down
2 changes: 2 additions & 0 deletions pinot-connectors/pinot-spark-2-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<shadeBase>org.apache.pinot.\$internal</shadeBase>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<profiles>
Expand Down
2 changes: 2 additions & 0 deletions pinot-connectors/pinot-spark-3-connector/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<shadeBase>org.apache.pinot.\$internal</shadeBase>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<profiles>
Expand Down
2 changes: 2 additions & 0 deletions pinot-connectors/pinot-spark-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/../..</pinot.root>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<profiles>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
*
* <p>It should be provided with a specified {@link ControllerRequestURLBuilder} for constructing the URL requests
* as well as a reusable {@link HttpClient} during construction.
*
* TODO: This should be moved to an external project in order to allow clients to use JDKs older than 21
*/
public class ControllerRequestClient {
private final HttpClient _httpClient;
Expand Down
2 changes: 2 additions & 0 deletions pinot-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/..</pinot.root>
<jdk.version>11</jdk.version>
<jdk.test.version>21</jdk.test.version>
</properties>

<dependencies>
Expand Down
1 change: 1 addition & 0 deletions pinot-plugins/pinot-metrics/pinot-yammer/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<properties>
<pinot.root>${basedir}/../../..</pinot.root>
<shade.phase.prop>package</shade.phase.prop>
<jdk.version>11</jdk.version>
</properties>

<dependencies>
Expand Down
3 changes: 3 additions & 0 deletions pinot-segment-local/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/..</pinot.root>
<jdk.version>11</jdk.version> <!-- Compiles with JDK 11 because it is needed by spark connector -->
<!-- Tests with JDK 21 because we include test dependencies that require so (ie pinot-avro) -->
<jdk.test.version>21</jdk.test.version>
</properties>

<dependencies>
Expand Down
1 change: 1 addition & 0 deletions pinot-segment-spi/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/..</pinot.root>
<jdk.version>11</jdk.version>
</properties>

<dependencies>
Expand Down
8 changes: 8 additions & 0 deletions pinot-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@
<repositoryName>lib</repositoryName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
2 changes: 2 additions & 0 deletions pinot-spi/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
<url>https://pinot.apache.org/</url>
<properties>
<pinot.root>${basedir}/..</pinot.root>
<jdk.version>11</jdk.version>
<jdk.test.version>11</jdk.test.version>
</properties>

<build>
Expand Down
1 change: 1 addition & 0 deletions pinot-timeseries/pinot-timeseries-spi/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

<properties>
<pinot.root>${basedir}/../..</pinot.root>
<jdk.version>11</jdk.version>
</properties>
<dependencies>
<dependency>
Expand Down
44 changes: 42 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,22 @@
<properties>
<pinot.root>${basedir}</pinot.root>
<build.profile.id>dev</build.profile.id>
<jdk.version>11</jdk.version>
<!--
By default, the release version is JDK 21.
Some projects designed to be used as libraries for external JVMs (like the jdbc driver or the spark connectors)
must set their jdk.version to 11 (or whatever they need to support).
They also must set jdk.test.version to that same version to be sure test are executed with that version.

In case these external libraries depend on other internal libraries (ie pinot-common), those libraries need to
define jdk.version to the same version as well to avoid compilation issues, but can keep their jdk.test.version
to 21 in case they use test dependencies that require so (like pinot-avro).

This means the internal libraries will be compiled but not verified to be compatible with the lower jdk version.
It is the **external library** responsibility to verify that all codepaths of the internal libraries are
compatible with the lower jdk version.
-->
<jdk.version>21</jdk.version>
<jdk.test.version>21</jdk.test.version>
<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 -->
Expand Down Expand Up @@ -2297,6 +2312,9 @@
-Xshare:off
-XX:+EnableDynamicAgentLoading
</argLine>
<jdkToolchain>
<version>${jdk.test.version}</version>
</jdkToolchain>
</configuration>
<!-- Explicitly select the test provider, instead of relying on the classpath -->
<dependencies>
Expand Down Expand Up @@ -2402,7 +2420,7 @@
<release>${jdk.version}</release>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<fork>true</fork>
<!-- <fork>true</fork>-->
<encoding>${project.build.sourceEncoding}</encoding>
<annotationProcessorPaths>
<path>
Expand All @@ -2426,6 +2444,25 @@
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>${jdk.version}</version>
</jdk>
</toolchains>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>javacc-maven-plugin</artifactId>
Expand Down Expand Up @@ -2590,6 +2627,9 @@
</excludes>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<jdkToolchain>
<version>${jdk.test.version}</version>
</jdkToolchain>
</configuration>
<executions>
<execution>
Expand Down
Loading