diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index a7a533fd8a..5c245ed313 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -1,4 +1,5 @@ name: Build and Run Java JNI Tests + on: push: branches: @@ -8,6 +9,7 @@ on: - java/** - rust/** - .github/workflows/java.yml + env: # This env var is used by Swatinem/rust-cache@v2 for the cache # key, so we set it to make sure it is always consistent. @@ -20,74 +22,75 @@ env: # CI builds are faster with incremental disabled. CARGO_INCREMENTAL: "0" CARGO_BUILD_JOBS: "1" + jobs: - linux-build: + rust-clippy-fmt: runs-on: ubuntu-22.04 - name: ubuntu-22.04 + Java 11 & 17 + name: Rust Clippy and Fmt Check defaults: run: - working-directory: ./java + working-directory: ./java/core/lance-jni steps: - name: Checkout repository uses: actions/checkout@v4 - uses: Swatinem/rust-cache@v2 with: - workspaces: java/java-jni + workspaces: java/core/lance-jni + - name: Install dependencies + run: | + sudo apt update + sudo apt install -y protobuf-compiler libssl-dev - name: Run cargo fmt run: cargo fmt --check - working-directory: ./java/core/lance-jni + - name: Rust Clippy + run: cargo clippy --all-targets -- -D warnings + + build-and-test-java: + runs-on: ubuntu-22.04 + strategy: + matrix: + java-version: [8, 11, 17] + name: Build and Test with Java ${{ matrix.java-version }} + defaults: + run: + working-directory: ./java + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + with: + workspaces: java/core/lance-jni - name: Install dependencies run: | sudo apt update sudo apt install -y protobuf-compiler libssl-dev - - name: Install Java 17 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - cache: "maven" - - run: echo "JAVA_17=$JAVA_HOME" >> $GITHUB_ENV - - name: Install Java 8 + - name: Set up Java ${{ matrix.java-version }} uses: actions/setup-java@v4 with: distribution: temurin - java-version: 8 + java-version: ${{ matrix.java-version }} cache: "maven" - - run: echo "JAVA_8=$JAVA_HOME" >> $GITHUB_ENV - - name: Install Java 11 - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 11 - cache: "maven" - - name: Java Style Check - run: mvn checkstyle:check - - name: Rust Clippy - working-directory: java/core/lance-jni - run: cargo clippy --all-targets -- -D warnings - - name: Running tests with Java 11 - run: mvn clean test - - name: Running tests with Java 8 - run: JAVA_HOME=$JAVA_8 mvn clean test - - name: Running tests with Java 17 + - name: Running tests with Java ${{ matrix.java-version }} run: | - export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS \ - -XX:+IgnoreUnrecognizedVMOptions \ - --add-opens=java.base/java.lang=ALL-UNNAMED \ - --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \ - --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \ - --add-opens=java.base/java.io=ALL-UNNAMED \ - --add-opens=java.base/java.net=ALL-UNNAMED \ - --add-opens=java.base/java.nio=ALL-UNNAMED \ - --add-opens=java.base/java.util=ALL-UNNAMED \ - --add-opens=java.base/java.util.concurrent=ALL-UNNAMED \ - --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \ - --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED \ - --add-opens=java.base/sun.nio.ch=ALL-UNNAMED \ - --add-opens=java.base/sun.nio.cs=ALL-UNNAMED \ - --add-opens=java.base/sun.security.action=ALL-UNNAMED \ - --add-opens=java.base/sun.util.calendar=ALL-UNNAMED \ - --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED \ - -Djdk.reflect.useDirectMethodHandle=false \ - -Dio.netty.tryReflectionSetAccessible=true" - JAVA_HOME=$JAVA_17 mvn clean test + if [ "${{ matrix.java-version }}" == "17" ]; then + export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS \ + -XX:+IgnoreUnrecognizedVMOptions \ + --add-opens=java.base/java.lang=ALL-UNNAMED \ + --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \ + --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \ + --add-opens=java.base/java.io=ALL-UNNAMED \ + --add-opens=java.base/java.net=ALL-UNNAMED \ + --add-opens=java.base/java.nio=ALL-UNNAMED \ + --add-opens=java.base/java.util=ALL-UNNAMED \ + --add-opens=java.base/java.util.concurrent=ALL-UNNAMED \ + --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \ + --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED \ + --add-opens=java.base/sun.nio.ch=ALL-UNNAMED \ + --add-opens=java.base/sun.nio.cs=ALL-UNNAMED \ + --add-opens=java.base/sun.security.action=ALL-UNNAMED \ + --add-opens=java.base/sun.util.calendar=ALL-UNNAMED \ + --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED \ + -Djdk.reflect.useDirectMethodHandle=false \ + -Dio.netty.tryReflectionSetAccessible=true" + fi + mvn clean test diff --git a/java/core/lance-jni/src/fragment.rs b/java/core/lance-jni/src/fragment.rs index 24d9863b22..2265822c11 100644 --- a/java/core/lance-jni/src/fragment.rs +++ b/java/core/lance-jni/src/fragment.rs @@ -34,10 +34,6 @@ use crate::{ RT, }; -/////////////////// -// Write Methods // -/////////////////// - ////////////////// // Read Methods // ////////////////// @@ -70,6 +66,9 @@ fn inner_count_rows_native( Ok(res) } +/////////////////// +// Write Methods // +/////////////////// #[no_mangle] pub extern "system" fn Java_com_lancedb_lance_Fragment_createWithFfiArray<'local>( mut env: JNIEnv<'local>, diff --git a/java/core/src/main/java/com/lancedb/lance/Dataset.java b/java/core/src/main/java/com/lancedb/lance/Dataset.java index 2e7df86812..7228684264 100644 --- a/java/core/src/main/java/com/lancedb/lance/Dataset.java +++ b/java/core/src/main/java/com/lancedb/lance/Dataset.java @@ -213,7 +213,7 @@ public long latestVersion() { /** * Count the number of rows in the dataset. * - * @return num of rows. + * @return num of rows */ public int countRows() { try (LockManager.ReadLock readLock = lockManager.acquireReadLock()) {