This is an automated email from the ASF dual-hosted git repository.

sunchao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion-comet.git


The following commit(s) were added to refs/heads/main by this push:
     new 1acb56f  build: Support built with java 1.8 (#45)
1acb56f is described below

commit 1acb56fa9a6cb9e82bf5188166f30b4b54593f99
Author: advancedxy <xian...@apache.org>
AuthorDate: Thu Feb 22 02:15:32 2024 +0800

    build: Support built with java 1.8 (#45)
    
    Co-authored-by: Liang-Chi Hsieh <vii...@gmail.com>
---
 .github/actions/java-test/action.yaml              |   5 +-
 .github/actions/rust-test/action.yaml              |  11 +-
 .github/actions/setup-builder/action.yaml          |   4 +-
 .github/actions/setup-macos-builder/action.yaml    |   4 +-
 .github/workflows/pr_build.yml                     | 118 ++++++++++-----------
 common/pom.xml                                     |   2 +-
 .../java/org/apache/comet/parquet/FileReader.java  |   4 +
 pom.xml                                            |   4 +-
 .../scala/org/apache/spark/sql/GenTPCHData.scala   |   2 +-
 9 files changed, 81 insertions(+), 73 deletions(-)

diff --git a/.github/actions/java-test/action.yaml 
b/.github/actions/java-test/action.yaml
index 6c3af79..9c7de9a 100644
--- a/.github/actions/java-test/action.yaml
+++ b/.github/actions/java-test/action.yaml
@@ -37,9 +37,10 @@ runs:
     - name: Run Maven compile
       shell: bash
       run: |
-        ./mvnw -B compile test-compile scalafix:scalafix -Psemanticdb
+        echo "JAVA_VERSION=${JAVA_VERSION}"
+        ./mvnw -B compile test-compile scalafix:scalafix -Psemanticdb 
-Djava.version=${JAVA_VERSION}
 
     - name: Run tests
       shell: bash
       run: |
-        SPARK_HOME=`pwd` ./mvnw -B clean install
+        SPARK_HOME=`pwd` ./mvnw -B clean install -Djava.version=${JAVA_VERSION}
diff --git a/.github/actions/rust-test/action.yaml 
b/.github/actions/rust-test/action.yaml
index b66b639..a013a7b 100644
--- a/.github/actions/rust-test/action.yaml
+++ b/.github/actions/rust-test/action.yaml
@@ -51,15 +51,20 @@ runs:
       shell: bash
       run: |
         cd common
-        ../mvnw -B clean compile -DskipTests
+        ../mvnw -B clean compile -DskipTests -Djava.version=${JAVA_VERSION}
 
     - name: Run Cargo test
       shell: bash
       run: |
         cd core
         # This is required to run some JNI related tests on the Rust side
+        
JAVA_LD_LIBRARY_PATH=$JAVA_HOME/lib/server:$JAVA_HOME/lib:$JAVA_HOME/lib/jli
+        # special handing for java 1.8 for both linux and mac distributions
+        if [ $JAVA_VERSION == "8" ]; then
+          
JAVA_LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64/server:$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/jli:$JAVA_HOME/jre/lib/server:$JAVA_HOME/jre/lib:$JAVA_HOME/jre/lib/jli
+        fi
         RUST_BACKTRACE=1 \
-        
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/lib:$JAVA_HOME/lib/server:$JAVA_HOME/lib/jli
 \
-        
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$JAVA_HOME/lib:$JAVA_HOME/lib/server:$JAVA_HOME/lib/jli
 \
+        LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH \
+        DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$JAVA_LD_LIBRARY_PATH \
         cargo test
 
diff --git a/.github/actions/setup-builder/action.yaml 
b/.github/actions/setup-builder/action.yaml
index f1aeb25..6fa7164 100644
--- a/.github/actions/setup-builder/action.yaml
+++ b/.github/actions/setup-builder/action.yaml
@@ -38,7 +38,9 @@ runs:
     - name: Install JDK ${{inputs.jdk-version}}
       uses: actions/setup-java@v4
       with:
-        distribution: 'adopt'
+        # distribution is chosen to be zulu as it still offers JDK 8 with 
Silicon support, which
+        # is not available in the adopt distribution
+        distribution: 'zulu'
         java-version: ${{inputs.jdk-version}}
 
     - name: Set JAVA_HOME
diff --git a/.github/actions/setup-macos-builder/action.yaml 
b/.github/actions/setup-macos-builder/action.yaml
index 1f680ed..63010ea 100644
--- a/.github/actions/setup-macos-builder/action.yaml
+++ b/.github/actions/setup-macos-builder/action.yaml
@@ -59,7 +59,9 @@ runs:
     - name: Install JDK ${{inputs.jdk-version}}
       uses: actions/setup-java@v4
       with:
-        distribution: 'adopt'
+        # distribution is chosen to be zulu as it still offers JDK 8 with 
Silicon support, which
+        # is not available in the adopt distribution
+        distribution: 'zulu'
         java-version: ${{inputs.jdk-version}}
         architecture: ${{inputs.jdk-architecture}}
 
diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml
index 51962cd..55117d3 100644
--- a/.github/workflows/pr_build.yml
+++ b/.github/workflows/pr_build.yml
@@ -35,105 +35,99 @@ on:
   workflow_dispatch:
 
 env:
-  JAVA_VERSION: 17
   RUST_VERSION: nightly
 
 jobs:
-  linux-rust-test:
-    name: Rust test (amd64)
-    runs-on: ubuntu-latest
+  linux-test:
+    strategy:
+      matrix:
+        os: [ubuntu-latest]
+        java_version: [8, 11, 17]
+        test-target: [rust, java]
+      fail-fast: false
+    name: ${{ matrix.test-target }} test on ${{ matrix.os }} with java ${{ 
matrix.java_version }}
+    runs-on: ${{ matrix.os }}
     container:
       image: amd64/rust
+    env:
+      JAVA_VERSION: ${{ matrix.java_version == 8 && '1.8' || format('{0}', 
matrix.java_version) }}
     steps:
       - uses: actions/checkout@v4
       - name: Setup Rust & Java toolchain
         uses: ./.github/actions/setup-builder
         with:
           rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
+          jdk-version: ${{ matrix.java_version }}
 
       - uses: actions/checkout@v4
-      - name: Rust test steps
+      - if: matrix.test-target == 'rust'
+        name: Rust test steps
         uses: ./.github/actions/rust-test
-
-  linux-java-test:
-    name: Java test (amd64)
-    runs-on: ubuntu-latest
-    container:
-      image: amd64/rust
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust & Java toolchain
-        uses: ./.github/actions/setup-builder
-        with:
-          rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
-
-      - uses: actions/checkout@v4
-      - name: Java test steps
+      - if: matrix.test-target == 'java'
+        name: Java test steps
         uses: ./.github/actions/java-test
 
-
-  macos-rust-test:
-    name: Rust test (macos)
-    runs-on: macos-latest
+  macos-test:
+    strategy:
+      matrix:
+        os: [macos-latest]
+        java_version: [8, 11, 17]
+        test-target: [rust, java]
+        is_push_event:
+          - ${{ github.event_name == 'push' }}
+        exclude: # exclude java 11 for pull_request event
+          - java_version: 11
+            is_push_event: false
+      fail-fast: false
+    name: ${{ matrix.test-target }} test on ${{ matrix.os }} with java ${{ 
matrix.java_version }}
+    runs-on: ${{ matrix.os }}
+    env:
+      JAVA_VERSION: ${{ matrix.java_version == 8 && '1.8' || format('{0}', 
matrix.java_version) }}
     steps:
       - uses: actions/checkout@v4
       - name: Setup Rust & Java toolchain
         uses: ./.github/actions/setup-macos-builder
         with:
           rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
+          jdk-version: ${{ matrix.java_version }}
 
       - uses: actions/checkout@v4
-      - name: Rust test steps
+      - if: matrix.test-target == 'rust'
+        name: Rust test steps
         uses: ./.github/actions/rust-test
-
-  macos-java-test:
-    name: Java test (macos)
-    runs-on: macos-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust & Java toolchain
-        uses: ./.github/actions/setup-macos-builder
-        with:
-          rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
-
-      - uses: actions/checkout@v4
-      - name: Java test steps
+      - if: matrix.test-target == 'java'
+        name: Java test steps
         uses: ./.github/actions/java-test
 
-  macos-aarch64-rust-test:
-    name: Rust test (macos-aarch64)
+  macos-aarch64-test:
+    strategy:
+      matrix:
+        java_version: [8, 11, 17]
+        test-target: [rust, java]
+        is_push_event:
+          - ${{ github.event_name == 'push' }}
+        exclude: # exclude java 11 for pull_request event
+          - java_version: 11
+            is_push_event: false
+      fail-fast: false
+    name: ${{ matrix.test-target }} test on macos-aarch64 with java ${{ 
matrix.java_version }}
     runs-on: macos-14
+    env:
+      JAVA_VERSION: ${{ matrix.java_version == 8 && '1.8' || format('{0}', 
matrix.java_version) }}
     steps:
       - uses: actions/checkout@v4
       - name: Setup Rust & Java toolchain
         uses: ./.github/actions/setup-macos-builder
         with:
           rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
+          jdk-version: ${{ matrix.java_version }}
           jdk-architecture: aarch64
           protoc-architecture: aarch_64
 
       - uses: actions/checkout@v4
-      - name: Rust test steps
+      - if: matrix.test-target == 'rust'
+        name: Rust test steps
         uses: ./.github/actions/rust-test
-
-  macos-aarch64-java-test:
-    name: Java test (macos-aarch64)
-    runs-on: macos-14
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup Rust & Java toolchain
-        uses: ./.github/actions/setup-macos-builder
-        with:
-          rust-version: ${{env.RUST_VERSION}}
-          jdk-version: ${{env.JAVA_VERSION}}
-          jdk-architecture: aarch64
-          protoc-architecture: aarch_64
-
-      - uses: actions/checkout@v4
-      - name: Java test steps
+      - if: matrix.test-target == 'java'
+        name: Java test steps
         uses: ./.github/actions/java-test
diff --git a/common/pom.xml b/common/pom.xml
index f885c34..5757351 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -80,7 +80,7 @@ under the License.
       <plugin>
         <groupId>io.github.git-commit-id</groupId>
         <artifactId>git-commit-id-maven-plugin</artifactId>
-        <version>5.0.0</version>
+        <version>4.9.9</version>
         <executions>
           <execution>
             <id>get-the-git-infos</id>
diff --git a/common/src/main/java/org/apache/comet/parquet/FileReader.java 
b/common/src/main/java/org/apache/comet/parquet/FileReader.java
index eddaf3f..61cf89b 100644
--- a/common/src/main/java/org/apache/comet/parquet/FileReader.java
+++ b/common/src/main/java/org/apache/comet/parquet/FileReader.java
@@ -882,6 +882,8 @@ public class FileReader implements Closeable {
     private final SQLMetric readThroughput;
 
     /**
+     * Constructor
+     *
      * @param offset where the first chunk starts
      */
     ConsecutivePartList(long offset) {
@@ -1104,6 +1106,8 @@ public class FileReader implements Closeable {
     }
 
     /**
+     * End position of the last byte of these chunks
+     *
      * @return the position following the last byte of these chunks
      */
     public long endPos() {
diff --git a/pom.xml b/pom.xml
index 0e72f92..b3c3545 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,8 +39,8 @@ under the License.
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <java.version>11</java.version>
-    <maven.compiler.source>11</maven.compiler.source>
-    <maven.compiler.target>11</maven.compiler.target>
+    <maven.compiler.source>${java.version}</maven.compiler.source>
+    <maven.compiler.target>${java.version}</maven.compiler.target>
     <scala.version>2.12.17</scala.version>
     <scala.binary.version>2.12</scala.binary.version>
     <scala.plugin.version>4.7.2</scala.plugin.version>
diff --git a/spark/src/test/scala/org/apache/spark/sql/GenTPCHData.scala 
b/spark/src/test/scala/org/apache/spark/sql/GenTPCHData.scala
index 1dcbc74..e25d4e5 100644
--- a/spark/src/test/scala/org/apache/spark/sql/GenTPCHData.scala
+++ b/spark/src/test/scala/org/apache/spark/sql/GenTPCHData.scala
@@ -76,7 +76,7 @@ object GenTPCHData {
     // Generate data
     // Since dbgen may uses stdout to output the data, tables.genData needs to 
run table by table
     val tableNames =
-      if (config.tableFilter.isBlank) tables.tables.map(_.name) else 
Seq(config.tableFilter)
+      if (config.tableFilter.trim.isEmpty) tables.tables.map(_.name) else 
Seq(config.tableFilter)
     tableNames.foreach { tableName =>
       tables.genData(
         location = 
s"${config.location}/tpch/sf${config.scaleFactor}_${config.format}",

Reply via email to