From 12f0d7aa43487d6f303a2cd5648693bdaf8656e6 Mon Sep 17 00:00:00 2001 From: "Colin P. McCabe" Date: Mon, 22 Dec 2025 18:34:05 -0800 Subject: [PATCH 1/3] refactor: upgrade Apache Arrow version to 18.3.0 in Java code In the Java code, upgrade the version of Apache Arrow that we use to 18.3.0. One reason to do this is that the previous version (15.0.0) did not support JDK21. --- java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/pom.xml b/java/pom.xml index b23c74b7a66..6c668c3e59b 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -28,7 +28,7 @@ UTF-8 - 15.0.0 + 18.3.0 0.28.1 false 2.30.0 From f5d7dbc7c1dc79bb7fa49d576e921dd28f978f6b Mon Sep 17 00:00:00 2001 From: "Colin P. McCabe" Date: Mon, 22 Dec 2025 21:41:48 -0800 Subject: [PATCH 2/3] fix java actions - Test with java 11, 17, 21 rather than 8, 11, 17 - Publish with java 11 --- .github/workflows/java-publish.yml | 6 +++--- .github/workflows/java.yml | 2 +- java/pom.xml | 4 ++-- java/src/main/java/org/lance/Dataset.java | 8 ++++++-- java/src/main/java/org/lance/Fragment.java | 4 +++- java/src/test/java/org/lance/TestUtils.java | 2 ++ 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/java-publish.yml b/.github/workflows/java-publish.yml index 00516994bf3..4c046593327 100644 --- a/.github/workflows/java-publish.yml +++ b/.github/workflows/java-publish.yml @@ -194,11 +194,11 @@ jobs: with: ref: ${{ inputs.ref }} - uses: Swatinem/rust-cache@v2 - - name: Set up Java 8 + - name: Set up Java 11 uses: actions/setup-java@v4 with: distribution: corretto - java-version: 8 + java-version: 11 cache: "maven" server-id: ossrh server-username: SONATYPE_USER @@ -228,7 +228,7 @@ jobs: working-directory: java run: | mvn --batch-mode -DskipTests -Drust.release.build=true package - - name: Publish with Java 8 + - name: Publish with Java 11 if: | github.event_name == 'release' || inputs.mode == 'release' diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index c702df258f8..a27104d0fd4 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -51,7 +51,7 @@ jobs: timeout-minutes: 60 strategy: matrix: - java-version: [8, 11, 17] + java-version: [11, 17, 21] name: Build and Test with Java ${{ matrix.java-version }} steps: - name: Checkout repository diff --git a/java/pom.xml b/java/pom.xml index 6c668c3e59b..4f153c3195a 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -31,8 +31,8 @@ 18.3.0 0.28.1 false - 2.30.0 - 1.7 + 2.43.0 + 1.22.0 2.12.19 2.12 diff --git a/java/src/main/java/org/lance/Dataset.java b/java/src/main/java/org/lance/Dataset.java index 6124e7f705d..eb66702ddf5 100644 --- a/java/src/main/java/org/lance/Dataset.java +++ b/java/src/main/java/org/lance/Dataset.java @@ -688,7 +688,9 @@ public List listVersions() { private native List nativeListVersions(); - /** @return the latest version of the dataset. */ + /** + * @return the latest version of the dataset. + */ public long latestVersion() { try (LockManager.WriteLock writeLock = lockManager.acquireWriteLock()) { Preconditions.checkArgument(nativeDatasetHandle != 0, "Dataset is closed"); @@ -957,7 +959,9 @@ public Optional readTransaction() { private native Transaction nativeReadTransaction(); - /** @return all the created indexes names */ + /** + * @return all the created indexes names + */ public List listIndexes() { try (LockManager.ReadLock readLock = lockManager.acquireReadLock()) { Preconditions.checkArgument(nativeDatasetHandle != 0, "Dataset is closed"); diff --git a/java/src/main/java/org/lance/Fragment.java b/java/src/main/java/org/lance/Fragment.java index 812fb49548c..62bcabf9bdd 100644 --- a/java/src/main/java/org/lance/Fragment.java +++ b/java/src/main/java/org/lance/Fragment.java @@ -124,7 +124,9 @@ public int getId() { return fragmentMetadata.getId(); } - /** @return row counts in this Fragment */ + /** + * @return row counts in this Fragment + */ public int countRows() { return countRowsNative(dataset, fragmentMetadata.getId()); } diff --git a/java/src/test/java/org/lance/TestUtils.java b/java/src/test/java/org/lance/TestUtils.java index f7cd56a1b0c..b17848ef6fb 100644 --- a/java/src/test/java/org/lance/TestUtils.java +++ b/java/src/test/java/org/lance/TestUtils.java @@ -530,6 +530,7 @@ public List createNewFragment(int rowCount, int maxRowsPerFile } return fragmentMetas; } + /** * Test method to update columns. Note that for simplicity, the updated column rowid is fixed * with [0, updateNum). Please only use this method to test the first fragment. @@ -606,6 +607,7 @@ public static final class BlobTestDataset { /** Lance blob metadata key required by Rust. */ private static final String BLOB_META_KEY = "lance-encoding:blob"; + /** Lance blob metadata value. */ private static final String BLOB_META_TRUE = "true"; From 8a35e37751c6e607aeab3adbdd6a107db2181064 Mon Sep 17 00:00:00 2001 From: "Colin P. McCabe" Date: Tue, 23 Dec 2025 15:02:16 -0800 Subject: [PATCH 3/3] bump maven.compiler.release to 11 --- java/AGENTS.md | 2 +- java/pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/AGENTS.md b/java/AGENTS.md index 1f6fd86dfe9..70d35e5e0db 100644 --- a/java/AGENTS.md +++ b/java/AGENTS.md @@ -10,4 +10,4 @@ lint rust: `cargo clippy --tests --manifest-path ./lance-jni/Cargo.toml` compile: `./mvnw compile` test: `./mvnw test` -JDK: pom.xml targets Java 8 (`maven.compiler.release` 8); align Rust toolchain with repository `rust-toolchain.toml`. +JDK: pom.xml targets Java 11 (`maven.compiler.release` 11); align Rust toolchain with repository `rust-toolchain.toml`. diff --git a/java/pom.xml b/java/pom.xml index 4f153c3195a..0b4d8a3c90f 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -419,8 +419,8 @@ [11,) - - 8 + + 11