From 1be6659387beb42a2511dcfd70c825e82cfdb288 Mon Sep 17 00:00:00 2001 From: linghengqian Date: Wed, 27 Sep 2023 13:30:36 +0800 Subject: [PATCH] Update CI related GraalVM CE version to 23.1.0 --- .github/workflows/nightly-build.yml | 5 +++-- .github/workflows/nightly-ci.yml | 2 +- distribution/proxy-native/pom.xml | 16 +--------------- .../graalvm-native-image/_index.cn.md | 7 +++---- .../graalvm-native-image/_index.en.md | 7 +++---- .../startup/graalvm-native-image.cn.md | 6 +++--- .../startup/graalvm-native-image.en.md | 6 +++--- infra/expr/type/espresso/pom.xml | 15 +++++++++++++-- .../infra/nativetest/FileTestUtils.java | 2 +- .../src/test/resources/yaml/sharding.yaml | 2 +- .../jdbc/sql/JDBCRepositorySQLLoader.java | 2 +- pom.xml | 4 ++-- 12 files changed, 35 insertions(+), 39 deletions(-) diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index b693625696fff7..ed19702f76e383 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -107,7 +107,8 @@ jobs: build-proxy-native-image: if: github.repository == 'apache/shardingsphere' - name: Build GraalVM Native Image + name: Build Proxy Native Image + needs: global-environment timeout-minutes: 90 permissions: contents: read @@ -119,7 +120,7 @@ jobs: ref: ${{ inputs.commit-id }} - uses: graalvm/setup-graalvm@v1 with: - java-version: '17.0.9' + java-version: '21.0.1' distribution: 'graalvm-community' github-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/cache@v3 diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 726a6448d016ef..5c369d039df6a6 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -115,7 +115,7 @@ jobs: - uses: actions/checkout@v3 - uses: graalvm/setup-graalvm@v1 with: - java-version: '17.0.9' + java-version: '21.0.1' distribution: 'graalvm-community' github-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/cache@v3 diff --git a/distribution/proxy-native/pom.xml b/distribution/proxy-native/pom.xml index 205f28680dc754..4cd0028c96e32c 100644 --- a/distribution/proxy-native/pom.xml +++ b/distribution/proxy-native/pom.xml @@ -36,12 +36,6 @@ org.apache.shardingsphere shardingsphere-proxy-bootstrap ${project.version} - - - org.apache.shardingsphere - shardingsphere-cluster-mode-repository-etcd - - @@ -78,6 +72,7 @@ release.native + 21 true true true @@ -87,14 +82,6 @@ apache-shardingsphere-${project.version} - - maven-compiler-plugin - ${maven-compiler-plugin.version} - - 17 - 17 - - org.graalvm.buildtools native-maven-plugin @@ -104,7 +91,6 @@ org.apache.shardingsphere.proxy.Bootstrap --report-unsupported-elements-at-runtime - -J-Xmx7g true diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md index ba6f3a41a2e6f7..36fde67200177d 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md @@ -15,8 +15,7 @@ CE 的 `native-image` 工具的长篇大论的 shell 命令。 ShardingSphere JDBC 要求在如下或更高版本的 `GraalVM CE` 完成构建 GraalVM Native Image。使用者可通过 SDKMAN! 快速切换 JDK。这同理 适用于 `Oracle GraalVM`, `Liberica Native Image Kit` 和 `Mandrel` 等 `GraalVM CE` 的下游发行版。 -- GraalVM CE 23.0.2 For JDK 17.0.9,对应于 SDKMAN! 的 `17.0.9-graalce` -- GraalVM CE 23.0.2 For JDK 21.0.1,对应于 SDKMAN! 的 `21.0.1-graalce` +- GraalVM CE 23.1.1 For JDK 21.0.1,对应于 SDKMAN! 的 `21.0.1-graalce` ### Maven 生态 @@ -226,8 +225,8 @@ ShardingSphere 定义了 `nativeTestInShardingSphere` 的 Maven Profile 用于 sudo apt install unzip zip curl sed -y curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" -sdk install java 17.0.9-graalce -sdk use java 17.0.9-graalce +sdk install java 21.0.1-graalce +sdk use java 21.0.1-graalce sudo apt-get install build-essential libz-dev zlib1g-dev -y git clone git@github.com:apache/shardingsphere.git diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md index 4037034abe0ae7..0cabe0284b8908 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md @@ -16,8 +16,7 @@ ShardingSphere JDBC requires GraalVM Native Image to be built with GraalVM CE as JDK through `SDKMAN!`. Same reason applicable to downstream distributions of `GraalVM CE` such as `Oracle GraalVM`, `Liberica Native Image Kit` and `Mandrel`. -- GraalVM CE 23.0.2 For JDK 17.0.9, corresponding to `17.0.9-graalce` of SDKMAN! -- GraalVM CE 23.0.2 For JDK 21.0.1, corresponding to `21.0.1-graalce` of SDKMAN! +- GraalVM CE 23.1.1 For JDK 21.0.1, corresponding to `21.0.1-graalce` of SDKMAN! ### Maven Ecology @@ -237,8 +236,8 @@ Assuming that the contributor is under a new Ubuntu 22.04.3 LTS instance, Contri sudo apt install unzip zip curl sed -y curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" -sdk install java 17.0.9-graalce -sdk use java 17.0.9-graalce +sdk install java 21.0.1-graalce +sdk use java 21.0.1-graalce sudo apt-get install build-essential libz-dev zlib1g-dev -y git clone git@github.com:apache/shardingsphere.git diff --git a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md index a8b17547ee45c5..fb64da461aa36b 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md @@ -42,7 +42,7 @@ services: 或 `GraalVM Community Edition` 的下游发行版。若使用 `SDKMAN!`, ```shell -sdk install java 17.0.9-graalce +sdk install java 21.0.1-graalce ``` 2. 根据 https://www.graalvm.org/jdk17/reference-manual/native-image/#prerequisites 的要求安装本地工具链。 @@ -90,7 +90,7 @@ sdk install java 17.0.9-graalce - 通过命令行构建 GraalVM Native Image。 ```bash -./mvnw -am -pl distribution/proxy-native -B -T1C -Prelease.native -DskipTests clean package +./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native -DskipTests clean package ``` 3. 通过命令行启动 Native Image, 需要带上 4 个参数。 @@ -105,7 +105,7 @@ sdk install java 17.0.9-graalce 4. 如果需要构建 Docker Image, 在添加存在 SPI 实现的依赖或第三方依赖后, 在命令行执行如下命令。 ```shell -./mvnw -am -pl distribution/proxy-native -B -T1C -Prelease.native,docker.native -DskipTests clean package +./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native,docker.native -DskipTests clean package ``` - 假设存在包含`server.yaml` 的 `conf` 文件夹为 `./custom/conf`,可通过如下的 `docker-compose.yml` 文件启动 GraalVM Native diff --git a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md index 416af5d97473a8..0b262f188a1ebc 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md @@ -47,7 +47,7 @@ services: JDK 17 according to https://www.graalvm.org/downloads/. If `SDKMAN!` is used, ```shell -sdk install java 17.0.9-graalce +sdk install java 21.0.1-graalce ``` 2. Install the local toolchain as required by https://www.graalvm.org/jdk17/reference-manual/native-image/#prerequisites. @@ -69,7 +69,7 @@ sdk install java 17.0.9-graalce Image. ```bash -./mvnw -am -pl distribution/proxy-native -B -T1C -Prelease.native -DskipTests clean package +./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native -DskipTests clean package ``` - Scenario 2: It is necessary to use a JAR that has an SPI implementation or a third-party dependent JAR of a LICENSE @@ -97,7 +97,7 @@ sdk install java 17.0.9-graalce - Build GraalVM Native Image via command line. ```bash -./mvnw -am -pl distribution/proxy-native -B -T1C -Prelease.native -DskipTests clean package +./mvnw -am -pl distribution/proxy-native -T1C -Prelease.native -DskipTests clean package ``` 3. To start Native Image through the command line, you need to bring 4 parameters. The first parameter is the `Port` diff --git a/infra/expr/type/espresso/pom.xml b/infra/expr/type/espresso/pom.xml index 9d4b935d03dc7b..b538e1be97a6ee 100644 --- a/infra/expr/type/espresso/pom.xml +++ b/infra/expr/type/espresso/pom.xml @@ -26,6 +26,10 @@ shardingsphere-infra-expr-espresso ${project.artifactId} + + 23.1.1 + + org.apache.shardingsphere @@ -50,9 +54,16 @@ - org.graalvm.truffle - truffle-api + org.graalvm.polyglot + polyglot + ${graalvm.version} + + + org.graalvm.polyglot + java-community ${graalvm.version} + pom + provided diff --git a/infra/nativetest/src/test/java/org/apache/shardingsphere/infra/nativetest/FileTestUtils.java b/infra/nativetest/src/test/java/org/apache/shardingsphere/infra/nativetest/FileTestUtils.java index 30768fb598a657..e4a0226036d69c 100644 --- a/infra/nativetest/src/test/java/org/apache/shardingsphere/infra/nativetest/FileTestUtils.java +++ b/infra/nativetest/src/test/java/org/apache/shardingsphere/infra/nativetest/FileTestUtils.java @@ -27,7 +27,7 @@ /** * The background for this class comes from oracle/graal#7682 - * and Accessing Resources in Native Image. + * and Accessing Resources in Native Image. * GraalVM Native Image has special features in its handling of file systems. * This means we are better off reading the file via `java.io.InputStream` instead of `java.net.URL` to avoid extra code * processing. diff --git a/infra/nativetest/src/test/resources/yaml/sharding.yaml b/infra/nativetest/src/test/resources/yaml/sharding.yaml index 10dc57f5e98ffe..849b09263a32d8 100644 --- a/infra/nativetest/src/test/resources/yaml/sharding.yaml +++ b/infra/nativetest/src/test/resources/yaml/sharding.yaml @@ -58,7 +58,7 @@ rules: shardingColumn: user_id shardingAlgorithmName: inline shardingAlgorithms: - # GroovyShell related classes are not available on GraalVM CE 23.0.2 For JDK 17.0.9, + # GroovyShell related classes are not available on GraalVM CE 23.1.1 For JDK 21.0.1, # This CLASS_BASE algorithm class is designed to emulate INLINE's `ds_${user_id % 2}`. # See https://github.com/oracle/graal/issues/5522 . inline: diff --git a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java index 2d7ea1cb9a7d49..4f2bde27d1aa1d 100644 --- a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java +++ b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java @@ -82,7 +82,7 @@ public static JDBCRepositorySQL load(final String type) { } /** - * Under the GraalVM Native Image corresponding to GraalVM CE 23.0.2 For JDK 17.0.9, although there is + * Under the GraalVM Native Image corresponding to GraalVM CE 23.1.1 For JDK 21.0.1, although there is * `com.oracle.svm.core.jdk.resources.NativeImageResourceFileSystemProvider`, the corresponding * `com.oracle.svm.core.jdk.resources.NativeImageResourceFileSystem` does not autoload. This is mainly to align the * behavior of `ZipFileSystemProvider`, so ShardingSphere need to manually open and close the FileSystem diff --git a/pom.xml b/pom.xml index 20a863812bfe33..434049caf8214a 100644 --- a/pom.xml +++ b/pom.xml @@ -1004,7 +1004,7 @@ generateMetadata - 17 + 21 true true true @@ -1073,7 +1073,7 @@ nativeTestInShardingSphere - 17 + 21