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
-
-
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