[type:feat] upgrade dockerfile java runtime version 8 to 17 (#5374)

* upgrade dockerfile java runtime version 8 to 17

* update jdk runtime version

* update jdk runtime version 17

* update jdk runtime version 17

* cannot find symbol Error:class Resource

* update jdk runtime version 17

* update jdk runtime version 17

* update jdk runtime version 17

* fix Unrecognized VM option 'UseFastAccessorMethods'

* Add test case for `AbstractWasmDiscoveryHandler` (#5453)

* Tests

* Updated lib.rs and added a README.md

I updated the `lib.rs` and updated the WASM file and also added a README.md

* Remove TestWasmPluginDiscoveryHandler#handlerDiscoveryUpstreamData

* Revert "Remove TestWasmPluginDiscoveryHandler#handlerDiscoveryUpstreamData"

This reverts commit c85d3dbbe9c43159236f8e073cb0a9320e6d0a01.

* Update AbstractWasmDiscoveryHandlerTest.java

---------

Co-authored-by: loongs-zhang <zhangzicheng@apache.org>

* fix AbstractWasmPluginDataHandlerTest (#5464)

* fix AbstractWasmPluginDataHandlerTest

* [ISSUE #5427] add AbstractWasmMetaDataHandlerTest

* fix spring-boot-starter-client-springmvc: fix expired comments. (#5463)

Co-authored-by: likeguo <33576070+li-keguo@users.noreply.github.com>

* [BUG] websocket offline don't remove upstream in database #5460 (#5462)

* add offline in grpc and websocket

* trigger ci

* trigger ci

---------

Co-authored-by: xiaoyu <xiaoyu@apache.org>
Co-authored-by: loongs-zhang <zhangzicheng@apache.org>

* refactor shenyu-sync-data-http : replace log %s -> {}. (#5465)

Co-authored-by: moremind <hefengen@apache.org>

* Encrypt the password (#5436)

* Encrypt the password

* Encrypt the password

* add client meta-information registration login

* Modified to AES/CTR/NoPadding mode

* Adding Exception Handling to Avoid NPE

* add doc

* Update key acquisition method

* Update key acquisition method and format

* Modified to AES/CBC/Pkcs7Padding mode

* delete blank

---------

Co-authored-by: 2252603132 <85060647+2252603132@users.noreply.github.com>
Co-authored-by: loongs-zhang <zhangzicheng@apache.org>
Co-authored-by: likeguo <33576070+li-keguo@users.noreply.github.com>
Co-authored-by: wln <w2252603132@gmail.com>

* [type: refactor] Admin distributed lock by spring-integration-jdbc (#5457)

* [type: refactor] Admin distributed lock by spring-integration-jdbc

* fix ci

* supplementary testing

* add a table for all SQL

* lock operation put it in try statement block

* fix-ci mock ReentrantLock cpu 100%

---------

Co-authored-by: moremind <hefengen@apache.org>

* [BUG] update app_key in db (#5471)

* AbstractNodeDataSyncService load discoverUpstream on startup (#5472) (#5473)

* [type:feature] enhance metrics-ratelimiter collect (#5461)

* [type:refactor] enhance metrics-ratelimiter collect

* [type:refactor] enhance metrics-ratelimiter collect

---------

Co-authored-by: xiaoyu <xiaoyu@apache.org>
Co-authored-by: loongs-zhang <zhangzicheng@apache.org>

* fixed #5477 (#5478)

* update image due wget not found

* update

* update

* update

* update

* update

* use 8 build

* use 8 build

* Revert "update"

This reverts commit d67da20d8c7fa669e9d4913742dbb7029b1da441.

* use 8 build

* update

* update

* update

* Revert "update"

This reverts commit bc1cc49cea1a7f67eca7fed73b00cd3150b68349.

* modify base image

* jdk17 support: modify base image

* jdk17 support: add null check

* jdk17 support: timestamp type adapter

* jdk17 support: gson modify

* jdk17 support: gson modify

* jdk17 support: gson modify

* jdk17 support: gson timestamp

* jdk17 support: gson timestamp

* jdk17 support: ci debug

* jdk17 support: ci debug mysql test

* jdk17 support: ci debug mysql test

* jdk17 support: ci debug mysql test

* jdk17 support: ci debug

* jdk17 support: ci debug mysql test

* jdk17 support: modify base image

* jdk17 support: ci debug

* jdk17 support: modify base image

* jdk17 support: modify jdbc env key

* jdk17 support: h2 sync

* jdk17 support: bootstrap base image

* jdk17 support: change base image

* jdk17 support: admin base image\e2e env config

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: ci build use jdk 17

* jdk17 support: ci build use jdk 17

* jdk17 support: ci build use jdk 17

* jdk17 support: ci build use jdk 17

* jdk17 support: ci build use jdk 17

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: base image

* jdk17 support: sofa base image

* jdk17 support: sofa base image

* jdk17 support: sofa base image

* jdk17 support: dubbo base image

* jdk17 support: e2e mysql

* jdk17 support: e2e h2

* jdk17 support: e2e mysql

* jdk17 support: eureka jdk 17

* jdk17 support: dubbo jdk 17

* jdk17 support: e2e timeout

* jdk17 support: combination

* jdk17 support: combination

* jdk17 support: combination

* jdk17 support: e2e timeout

* jdk17 support: change base jdk image

* jdk17 support: motan image

* jdk17 support: debug

* jdk17 support: motan image

* jdk17 support: base image

* jdk17 support: motan example base image

* jdk17 support: motan jdk17

* jdk17 support: motan jdk17

* jdk17 support: ci debug

* jdk17 support: ci debug

* jdk17 support: change base image based on alpine

* jdk17 support: change base image based on alpine

* jdk17 support: change base image based on alpine

* jdk17 support: change base image to amazoncorretto:17.0.11-alpine3.19

---------

Co-authored-by: yunlongn <yunlongn@outlook.com>
Co-authored-by: dragon-zhang <zhangzicheng@apache.org>
Co-authored-by: Divyansh200102 <146909065+Divyansh200102@users.noreply.github.com>
Co-authored-by: caaaaaat <875411010@qq.com>
Co-authored-by: likeguo <33576070+li-keguo@users.noreply.github.com>
Co-authored-by: 杨文杰 <31105009+ywj1352@users.noreply.github.com>
Co-authored-by: xiaoyu <xiaoyu@apache.org>
Co-authored-by: frank <shaoshuai_yy@163.com>
Co-authored-by: moremind <hefengen@apache.org>
Co-authored-by: wlngo <85060647+wlngo@users.noreply.github.com>
Co-authored-by: 2252603132 <85060647+2252603132@users.noreply.github.com>
Co-authored-by: wln <w2252603132@gmail.com>
Co-authored-by: crudboy <965211455@qq.com>
Co-authored-by: dyjxg4xygary <1140408986@qq.com>
Co-authored-by: Kerwin Bryant <kerwin612@qq.com>
Co-authored-by: liuhy <rokkki@163.com>
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e4e93d6..09a0b14 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,7 +25,7 @@
   build:
     strategy:
       matrix:
-        java: [ 8, 11 ]
+        java: [ 8, 11, 17 ]
         os: [ ubuntu-latest, windows-latest ]
         include:
           - java: 12
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index d517d9d..ad76d91 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -41,10 +41,10 @@
         uses: actions/checkout@v3
         with:
           submodules: true
-      - name: Set up JDK 1.8
+      - name: Set up JDK 17
         uses: actions/setup-java@v3
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
 
       - name: Restore ShenYu Maven Repos
diff --git a/.github/workflows/docker-publish-dockerhub.yml b/.github/workflows/docker-publish-dockerhub.yml
index 434858e..3873d49 100644
--- a/.github/workflows/docker-publish-dockerhub.yml
+++ b/.github/workflows/docker-publish-dockerhub.yml
@@ -65,7 +65,7 @@
 
       - uses: actions/setup-java@v3
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
 
       - name: Build with Maven
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 4029f63..ca43f32 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -69,7 +69,7 @@
 
       - uses: actions/setup-java@v3
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
 
       - name: Build with Maven
diff --git a/.github/workflows/e2e-k8s.yml b/.github/workflows/e2e-k8s.yml
index 061b889..3f93051 100644
--- a/.github/workflows/e2e-k8s.yml
+++ b/.github/workflows/e2e-k8s.yml
@@ -59,10 +59,10 @@
           rm --recursive --force "$AGENT_TOOLSDIRECTORY"
           df --human-readable
 
-      - name: Set up JDK 8 for Building ShenYu
+      - name: Set up JDK 17 for Building ShenYu
         uses: actions/setup-java@v3
         with:
-          java-version: '8'
+          java-version: '17'
           distribution: 'temurin'
 
       - uses: dorny/paths-filter@v2
@@ -150,10 +150,10 @@
           mkdir -p ~/.kube
           cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
 
-      - name: Set up JDK 8 for Building ShenYu
+      - name: Set up JDK 17 for Building ShenYu
         uses: actions/setup-java@v3
         with:
-          java-version: '8'
+          java-version: '17'
           distribution: 'temurin'
 
       - name: Restore ShenYu Maven Repos
@@ -244,10 +244,10 @@
           mkdir -p ~/.kube
           cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
 
-      - name: Set up JDK 8 for Building ShenYu
+      - name: Set up JDK 17 for Building ShenYu
         uses: actions/setup-java@v3
         with:
-          java-version: '8'
+          java-version: '17'
           distribution: 'temurin'
 
       - name: Restore ShenYu Maven Repos
diff --git a/.github/workflows/integrated-test-k8s-ingress.yml b/.github/workflows/integrated-test-k8s-ingress.yml
index a782e46..6ce134d 100644
--- a/.github/workflows/integrated-test-k8s-ingress.yml
+++ b/.github/workflows/integrated-test-k8s-ingress.yml
@@ -66,7 +66,7 @@
       - uses: actions/setup-java@v3
         if: steps.filter.outputs.changed == 'true'
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
 
       - name: Install Go
@@ -93,7 +93,7 @@
       - uses: actions/setup-java@v3
         if: steps.filter.outputs.changed == 'true'
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
 
       - name: Build with Maven
diff --git a/.github/workflows/integrated-test.yml b/.github/workflows/integrated-test.yml
index a99cf36..5789a63 100644
--- a/.github/workflows/integrated-test.yml
+++ b/.github/workflows/integrated-test.yml
@@ -69,7 +69,7 @@
       - uses: actions/setup-java@v3
         if: steps.filter.outputs.changed == 'true'
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
       - name: Build with Maven
         if: steps.filter.outputs.changed == 'true'
diff --git a/.github/workflows/k8s-examples-http.yml b/.github/workflows/k8s-examples-http.yml
index d408f85..1c697ab 100644
--- a/.github/workflows/k8s-examples-http.yml
+++ b/.github/workflows/k8s-examples-http.yml
@@ -64,7 +64,7 @@
         uses: actions/setup-java@v3
         if: steps.filter.outputs.changed == 'true'
         with:
-          java-version: 8
+          java-version: 17
           distribution: 'temurin'
       -
         name: Build with Maven
diff --git a/shenyu-common/src/main/java/org/apache/shenyu/common/dto/DiscoveryUpstreamData.java b/shenyu-common/src/main/java/org/apache/shenyu/common/dto/DiscoveryUpstreamData.java
index 7c6830c..8741c74 100644
--- a/shenyu-common/src/main/java/org/apache/shenyu/common/dto/DiscoveryUpstreamData.java
+++ b/shenyu-common/src/main/java/org/apache/shenyu/common/dto/DiscoveryUpstreamData.java
@@ -17,6 +17,8 @@
 
 package org.apache.shenyu.common.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.sql.Timestamp;
 import java.util.Objects;
 
@@ -30,11 +32,13 @@
     /**
      * created time.
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Timestamp dateCreated;
 
     /**
      * updated time.
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Timestamp dateUpdated;
 
 
diff --git a/shenyu-common/src/main/java/org/apache/shenyu/common/utils/GsonUtils.java b/shenyu-common/src/main/java/org/apache/shenyu/common/utils/GsonUtils.java
index 9655084..75240b5 100644
--- a/shenyu-common/src/main/java/org/apache/shenyu/common/utils/GsonUtils.java
+++ b/shenyu-common/src/main/java/org/apache/shenyu/common/utils/GsonUtils.java
@@ -25,7 +25,10 @@
 import com.google.gson.JsonElement;
 import com.google.gson.JsonNull;
 import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
 import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
 import com.google.gson.TypeAdapter;
 import com.google.gson.reflect.TypeToken;
 import com.google.gson.stream.JsonReader;
@@ -45,8 +48,13 @@
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.net.URLDecoder;
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.Duration;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -60,41 +68,42 @@
  * GSONUtils.
  */
 public class GsonUtils {
-
+    
     /**
      * logger.
      */
     private static final Logger LOG = LoggerFactory.getLogger(GsonUtils.class);
-
+    
     private static final GsonUtils INSTANCE = new GsonUtils();
-
+    
     private static final Gson GSON = new GsonBuilder()
             .registerTypeAdapter(String.class, new StringTypeAdapter())
+            .registerTypeAdapter(Timestamp.class, new TimestampTypeAdapter())
             .registerTypeHierarchyAdapter(Pair.class, new PairTypeAdapter())
             .registerTypeHierarchyAdapter(Duration.class, new DurationTypeAdapter())
             .create();
-
+    
     private static final Gson GSON_MAP = new GsonBuilder().serializeNulls().registerTypeHierarchyAdapter(new TypeToken<Map<String, Object>>() {
     }.getRawType(), new MapDeserializer<String, Object>()).create();
-
+    
     private static final String DOT = ".";
-
+    
     private static final String E = "e";
-
+    
     private static final String LEFT = "left";
-
+    
     private static final String RIGHT = "right";
-
+    
     private static final String LEFT_ANGLE_BRACKETS = "{";
-
+    
     private static final String RIGHT_ANGLE_BRACKETS = "}";
-
+    
     private static final String EMPTY = "";
-
+    
     private static final String EQUAL_SIGN = "=";
-
+    
     private static final String AND = "&";
-
+    
     /**
      * Get gson instance.
      *
@@ -103,7 +112,7 @@
     public static Gson getGson() {
         return GsonUtils.GSON;
     }
-
+    
     /**
      * Get instance.
      *
@@ -112,7 +121,7 @@
     public static GsonUtils getInstance() {
         return INSTANCE;
     }
-
+    
     /**
      * To json string.
      *
@@ -122,55 +131,55 @@
     public String toJson(final Object object) {
         return GSON.toJson(object);
     }
-
+    
     /**
      * From json t.
      *
-     * @param <T>    the type parameter
-     * @param json   the json
+     * @param <T> the type parameter
+     * @param json the json
      * @param tClass the t class
      * @return the t
      */
     public <T> T fromJson(final String json, final Class<T> tClass) {
         return GSON.fromJson(json, tClass);
     }
-
+    
     /**
      * From json t.
      *
-     * @param <T>         the type parameter
+     * @param <T> the type parameter
      * @param jsonElement the json element
-     * @param tClass      the t class
+     * @param tClass the t class
      * @return the t
      */
     public <T> T fromJson(final JsonElement jsonElement, final Class<T> tClass) {
         return GSON.fromJson(jsonElement, tClass);
     }
-
+    
     /**
      * From list.
      *
-     * @param <T>   the type parameter
-     * @param json  the json
+     * @param <T> the type parameter
+     * @param json the json
      * @param clazz the clazz
      * @return the list
      */
     public <T> List<T> fromList(final String json, final Class<T> clazz) {
         return GSON.fromJson(json, TypeToken.getParameterized(List.class, clazz).getType());
     }
-
+    
     /**
      * From current list.
      *
-     * @param <T>   the type parameter
-     * @param json  the json
+     * @param <T> the type parameter
+     * @param json the json
      * @param clazz the clazz
      * @return the list
      */
     public <T> List<T> fromCurrentList(final String json, final Class<T> clazz) {
         return GSON.fromJson(json, TypeToken.getParameterized(CopyOnWriteArrayList.class, clazz).getType());
     }
-
+    
     /**
      * to Get Param.
      *
@@ -195,9 +204,9 @@
         });
         final String r = stringBuilder.toString();
         return r.substring(0, r.lastIndexOf(AND));
-
+        
     }
-
+    
     /**
      * to Map.
      *
@@ -208,7 +217,7 @@
         return GSON.fromJson(json, new TypeToken<Map<String, String>>() {
         }.getType());
     }
-
+    
     /**
      * to List Map.
      *
@@ -219,7 +228,7 @@
         return GSON.fromJson(json, new TypeToken<List<Map<String, Object>>>() {
         }.getType());
     }
-
+    
     /**
      * To object map.
      *
@@ -230,31 +239,31 @@
         return GSON_MAP.fromJson(json, new TypeToken<LinkedHashMap<String, Object>>() {
         }.getType());
     }
-
+    
     /**
      * To object map.
      *
-     * @param <T>   the class
-     * @param json  the json
+     * @param <T> the class
+     * @param json the json
      * @param clazz the class
      * @return the map
      */
     public <T> Map<String, T> toObjectMap(final String json, final Class<T> clazz) {
         return GSON.fromJson(json, TypeToken.getParameterized(Map.class, String.class, clazz).getType());
     }
-
+    
     /**
      * To object map list.
      *
-     * @param <T>   the class
-     * @param json  the json
+     * @param <T> the class
+     * @param json the json
      * @param clazz the class
      * @return the map
      */
     public <T> Map<String, List<T>> toObjectMapList(final String json, final Class<T> clazz) {
         return GSON.fromJson(json, TypeToken.getParameterized(Map.class, String.class, TypeToken.getParameterized(List.class, clazz).getType()).getType());
     }
-
+    
     /**
      * To tree map.
      *
@@ -275,11 +284,11 @@
     public Map<String, Object> convertToMap(final String json) {
         Map<String, Object> map = GSON_MAP.fromJson(json, new TypeToken<Map<String, Object>>() {
         }.getType());
-
+        
         if (MapUtils.isEmpty(map)) {
             return map;
         }
-
+        
         for (Map.Entry<String, Object> entry : map.entrySet()) {
             String key = entry.getKey();
             Object value = entry.getValue();
@@ -298,10 +307,10 @@
                 map.put(key, null);
             }
         }
-
+        
         return map;
     }
-
+    
     /**
      * translate JsonArray in covertToMap of Method.
      *
@@ -328,10 +337,10 @@
                 list.add(objStr);
             }
         }
-
+        
         return list;
     }
-
+    
     private static class MapDeserializer<T, U> implements JsonDeserializer<Map<T, U>> {
         @SuppressWarnings("unchecked")
         @Override
@@ -346,7 +355,7 @@
             } catch (ClassNotFoundException e) {
                 LOG.error("failed to get class", e);
             }
-
+            
             Map<T, U> resultMap = null;
             assert mapClass != null;
             if (Objects.requireNonNull(mapClass).isInterface()) {
@@ -374,7 +383,7 @@
             }
             return resultMap;
         }
-
+        
         /**
          * Get JsonElement class type.
          *
@@ -385,7 +394,7 @@
             if (!element.isJsonPrimitive()) {
                 return element.getClass();
             }
-
+            
             final JsonPrimitive primitive = element.getAsJsonPrimitive();
             if (primitive.isString()) {
                 return String.class;
@@ -404,7 +413,7 @@
             return element.getClass();
         }
     }
-
+    
     private static class StringTypeAdapter extends TypeAdapter<String> {
         @Override
         public void write(final JsonWriter out, final String value) {
@@ -418,7 +427,7 @@
                 LOG.error("failed to write", e);
             }
         }
-
+        
         @Override
         public String read(final JsonReader reader) {
             try {
@@ -432,9 +441,9 @@
             }
         }
     }
-
+    
     private static class PairTypeAdapter extends TypeAdapter<Pair<String, String>> {
-
+        
         @Override
         public void write(final JsonWriter out, final Pair<String, String> value) throws IOException {
             out.beginObject();
@@ -442,14 +451,14 @@
             out.name(RIGHT).value(value.getRight());
             out.endObject();
         }
-
+        
         @Override
         public Pair<String, String> read(final JsonReader in) throws IOException {
             in.beginObject();
-
+            
             String left = null;
             String right = null;
-
+            
             while (in.hasNext()) {
                 switch (in.nextName()) {
                     case LEFT:
@@ -462,13 +471,13 @@
                         break;
                 }
             }
-
+            
             in.endObject();
-
+            
             return Pair.of(left, right);
         }
     }
-
+    
     private static class DurationTypeAdapter extends TypeAdapter<Duration> {
         @Override
         public void write(final JsonWriter out, final Duration value) {
@@ -482,7 +491,7 @@
                 LOG.error("failed to write", e);
             }
         }
-
+        
         @Override
         public Duration read(final JsonReader reader) {
             try {
@@ -496,4 +505,28 @@
             }
         }
     }
+    
+    private static class TimestampTypeAdapter implements JsonSerializer<Timestamp>, JsonDeserializer<Timestamp> {
+        
+        private final DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        
+        @Override
+        public Timestamp deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException {
+            if (!(json instanceof JsonPrimitive)) {
+                throw new JsonParseException("The date should be a string value");
+            }
+            try {
+                Date date = format.parse(json.getAsString());
+                return new Timestamp(date.getTime());
+            } catch (ParseException e) {
+                throw new JsonParseException(e);
+            }
+        }
+        
+        @Override
+        public JsonElement serialize(final Timestamp src, final Type typeOfSrc, final JsonSerializationContext context) {
+            String dfString = format.format(new Date(src.getTime()));
+            return new JsonPrimitive(dfString);
+        }
+    }
 }
diff --git a/shenyu-dist/shenyu-admin-dist/docker/Dockerfile b/shenyu-dist/shenyu-admin-dist/docker/Dockerfile
index 3138f13..2df4884 100644
--- a/shenyu-dist/shenyu-admin-dist/docker/Dockerfile
+++ b/shenyu-dist/shenyu-admin-dist/docker/Dockerfile
@@ -23,9 +23,9 @@
 ADD target/${APP_NAME}.tar.gz /opt
 RUN mv /opt/${APP_NAME} ${LOCAL_PATH}
 
-FROM openjdk:8-jre-alpine
+FROM amazoncorretto:17.0.11-alpine3.19
 
-RUN apk --no-cache add procps
+RUN apk --no-cache add wget curl
 
 ENV LOCAL_PATH /opt/shenyu-admin
 ENV ADMIN_JVM ""
diff --git a/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh b/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh
index 31ef33f..fcc0e0d 100644
--- a/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh
+++ b/shenyu-dist/shenyu-admin-dist/docker/entrypoint.sh
@@ -24,7 +24,6 @@
 CLASS_PATH=.:${DEPLOY_DIR}/conf:${DEPLOY_DIR}/lib/*:${EXT_LIB}/*
 if [ -z "${ADMIN_JVM}" ]; then
     JAVA_OPTS=" -server -Xmx2g -Xms2g -Xmn1g -Xss328k -XX:+DisableExplicitGC  -XX:LargePageSizeInBytes=128m"
-    JAVA_OPTS="${JAVA_OPTS} -XX:+UseFastAccessorMethods -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=70"
     echo "Use default jvm options: $JAVA_OPTS"
 else
     JAVA_OPTS=${ADMIN_JVM}
diff --git a/shenyu-dist/shenyu-bootstrap-dist/docker/Dockerfile b/shenyu-dist/shenyu-bootstrap-dist/docker/Dockerfile
index a1b3f89..72fee6f 100644
--- a/shenyu-dist/shenyu-bootstrap-dist/docker/Dockerfile
+++ b/shenyu-dist/shenyu-bootstrap-dist/docker/Dockerfile
@@ -23,9 +23,9 @@
 ADD target/${APP_NAME}.tar.gz /opt
 RUN mv /opt/${APP_NAME} ${LOCAL_PATH}
 
-FROM openjdk:8-jre-alpine
+FROM amazoncorretto:17.0.11-alpine3.19
 
-RUN apk --no-cache add procps
+RUN apk --no-cache add wget curl
 
 ENV LOCAL_PATH /opt/shenyu-bootstrap
 ENV BOOT_JVM ""
diff --git a/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh b/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh
index d8262ae..ea5a638 100644
--- a/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh
+++ b/shenyu-dist/shenyu-bootstrap-dist/docker/entrypoint.sh
@@ -24,7 +24,7 @@
 CLASS_PATH=.:${DEPLOY_DIR}/conf:${DEPLOY_DIR}/lib/*:${EXT_LIB}/*
 if [ -z "${BOOT_JVM}" ]; then
     JAVA_OPTS=" -server -Xmx2g -Xms2g -Xmn1g -Xss512k -XX:+DisableExplicitGC   -XX:LargePageSizeInBytes=128m"
-    JAVA_OPTS="${JAVA_OPTS} -XX:+UseFastAccessorMethods  -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=70"
+#    JAVA_OPTS="${JAVA_OPTS} -XX:+UseFastAccessorMethods  -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly  -XX:CMSInitiatingOccupancyFraction=70"
     echo "Use default jvm options: $JAVA_OPTS"
 else
     JAVA_OPTS=${BOOT_JVM}
diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
index 8329491..25f37f0 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-http/k8s/script/e2e-http-sync.sh
@@ -55,6 +55,8 @@
   sleep 10s
   kubectl get pod -o wide
 
+  kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin | awk '{print $1}')"
+
   ## run e2e-test
   ./mvnw -B -f ./shenyu-e2e/pom.xml -pl shenyu-e2e-case/shenyu-e2e-case-http -am test
   # shellcheck disable=SC2181
diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
index 8ab63af..c5f39a9 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-h2.sh
@@ -31,8 +31,6 @@
 chmod +x "${curPath}"/healthcheck.sh
 sh "${curPath}"/healthcheck.sh h2 http://localhost:31095/actuator/health http://localhost:31195/actuator/health
 
-kubectl get pod -o wide
-
 ## run e2e-test
 
 curl -S "http://localhost:31195/actuator/pluginData"
diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
index 9df50ed..4a5188e 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-mysql.sh
@@ -31,11 +31,11 @@
 
 sleep 30s
 
-kubectl get pod -o wide
-
 chmod +x "${curPath}"/healthcheck.sh
 sh "${curPath}"/healthcheck.sh mysql http://localhost:31095/actuator/health http://localhost:31195/actuator/health
 
+kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin | awk '{print $1}')"
+
 ## run e2e-test
 
 curl -S "http://localhost:31195/actuator/pluginData"
diff --git a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-opengauss.sh b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-opengauss.sh
index cffcee2..0cbad86 100644
--- a/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-opengauss.sh
+++ b/shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-storage/k8s/script/e2e-opengauss.sh
@@ -36,10 +36,6 @@
 chmod +x "${curPath}"/healthcheck.sh
 sh "${curPath}"/healthcheck.sh postgres http://localhost:31095/actuator/health http://localhost:31195/actuator/health
 
-kubectl logs "$(kubectl get pod -o wide | grep shenyu-admin | awk '{print $1}')"
-
-kubectl logs "$(kubectl get pod -o wide | grep shenyu-bootstrap | awk '{print $1}')"
-
 ## run e2e-test
 
 curl -S "http://localhost:31195/actuator/pluginData"
diff --git a/shenyu-e2e/shenyu-e2e-client/src/main/java/org/apache/shenyu/e2e/client/WaitDataSync.java b/shenyu-e2e/shenyu-e2e-client/src/main/java/org/apache/shenyu/e2e/client/WaitDataSync.java
index 2c8676e..ce3efdd 100644
--- a/shenyu-e2e/shenyu-e2e-client/src/main/java/org/apache/shenyu/e2e/client/WaitDataSync.java
+++ b/shenyu-e2e/shenyu-e2e-client/src/main/java/org/apache/shenyu/e2e/client/WaitDataSync.java
@@ -65,7 +65,7 @@
             if (retryNum % 3 == 0) {
                 adminClient.syncPluginAll();
             }
-            Thread.sleep(3000);
+            Thread.sleep(10000);
             retryNum++;
         }
         Assertions.assertNotEquals(adminDataList.size(), 0);
@@ -90,7 +90,7 @@
                     break;
                 }
             }
-            Thread.sleep(3000);
+            Thread.sleep(10000);
             retryNum++;
             pluginMap = gatewayClient.getPlugins();
         }
diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/Dockerfile b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/Dockerfile
index 164a223..804dc32 100644
--- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/Dockerfile
+++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-apache-dubbo-service-xml
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml
index aedfcdf..dd35ae7 100644
--- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml
+++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml
@@ -133,11 +133,6 @@
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.apache.shenyu</groupId>
-            <artifactId>shenyu-examples-dubbo-api</artifactId>
-            <version>2.7.0-SNAPSHOT</version>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/Dockerfile b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/Dockerfile
index eabd4a4..68bf4eb 100644
--- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/Dockerfile
+++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM bellsoft/liberica-openjdk-alpine:17
 
 ENV APP_NAME shenyu-examples-apache-dubbo-service
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-eureka/Dockerfile b/shenyu-examples/shenyu-examples-eureka/Dockerfile
index a5c102b..ef303fb 100644
--- a/shenyu-examples/shenyu-examples-eureka/Dockerfile
+++ b/shenyu-examples/shenyu-examples-eureka/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-eureka
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-grpc/Dockerfile b/shenyu-examples/shenyu-examples-grpc/Dockerfile
index c92e73a..3e9a36a 100644
--- a/shenyu-examples/shenyu-examples-grpc/Dockerfile
+++ b/shenyu-examples/shenyu-examples-grpc/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-grpc
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-http-swagger2/Dockerfile b/shenyu-examples/shenyu-examples-http-swagger2/Dockerfile
index f63be7c..db84066 100644
--- a/shenyu-examples/shenyu-examples-http-swagger2/Dockerfile
+++ b/shenyu-examples/shenyu-examples-http-swagger2/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-http-swagger2
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-http/Dockerfile b/shenyu-examples/shenyu-examples-http/Dockerfile
index f5fd21f..d6b53f4 100644
--- a/shenyu-examples/shenyu-examples-http/Dockerfile
+++ b/shenyu-examples/shenyu-examples-http/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-http
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-https/Dockerfile b/shenyu-examples/shenyu-examples-https/Dockerfile
index 0ecee47..eec4c68 100644
--- a/shenyu-examples/shenyu-examples-https/Dockerfile
+++ b/shenyu-examples/shenyu-examples-https/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:11
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-https
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/Dockerfile b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/Dockerfile
index da170ff..0bac119 100644
--- a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/Dockerfile
+++ b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-motan
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -27,4 +27,4 @@
 EXPOSE 8081
 EXPOSE 8002
 
-CMD java -jar ${APP_NAME}.jar
+CMD java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED -jar ${APP_NAME}.jar
diff --git a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml
index 800a2dd..d92cb79 100644
--- a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml
+++ b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml
@@ -28,6 +28,10 @@
 
     <artifactId>shenyu-examples-motan-service</artifactId>
 
+    <properties>
+        <zookeeper.version>3.7.2</zookeeper.version>
+    </properties>
+    
     <dependencies>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -50,6 +54,17 @@
             <groupId>org.apache.shenyu</groupId>
             <artifactId>shenyu-examples-motan-api</artifactId>
             <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>zookeeper</artifactId>
+                    <groupId>org.apache.zookeeper</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <artifactId>zookeeper</artifactId>
+            <groupId>org.apache.zookeeper</groupId>
+            <version>${zookeeper.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.shenyu</groupId>
diff --git a/shenyu-examples/shenyu-examples-plugin/pom.xml b/shenyu-examples/shenyu-examples-plugin/pom.xml
index a5f28e6..eda4c1a 100644
--- a/shenyu-examples/shenyu-examples-plugin/pom.xml
+++ b/shenyu-examples/shenyu-examples-plugin/pom.xml
@@ -33,6 +33,10 @@
             <artifactId>shenyu-plugin-base</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/Dockerfile
index 1cfc077..8f1d1bd 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-apache-dubbo-consumer
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/Dockerfile
index 60eda0c..63367db 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-apache-dubbo-provider
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/Dockerfile
index 2020e23..c72364d 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-feign
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/Dockerfile
index cfb1469..5fe8904 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-grpc-consumer
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/Dockerfile
index 2c2e4be..1f1b9a0 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-grpc-provider
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/Dockerfile
index 52e74e0..e98d9ec 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-http
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/Dockerfile
index de486f4..1da8851 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-springcloud-consumer
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/Dockerfile b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/Dockerfile
index a33f0d6..1ae1a64 100644
--- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sdk-springcloud-provider
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/Dockerfile b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/Dockerfile
index f74449a..866cb04 100644
--- a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/Dockerfile
+++ b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-sofa
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-springcloud/Dockerfile b/shenyu-examples/shenyu-examples-springcloud/Dockerfile
index 9c365bc..776dc28 100644
--- a/shenyu-examples/shenyu-examples-springcloud/Dockerfile
+++ b/shenyu-examples/shenyu-examples-springcloud/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-springcloud
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-springmvc/Dockerfile b/shenyu-examples/shenyu-examples-springmvc/Dockerfile
index ac19a0d..1251fe8 100644
--- a/shenyu-examples/shenyu-examples-springmvc/Dockerfile
+++ b/shenyu-examples/shenyu-examples-springmvc/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-examples-springmvc
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/Dockerfile b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/Dockerfile
index cb9115e..6bac3df 100644
--- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/Dockerfile
+++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-example-spring-annotation-websocket
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/Dockerfile b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/Dockerfile
index 4c81aac..2733edb 100644
--- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/Dockerfile
+++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-example-spring-native-websocket
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/src/main/resources/application.yml b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/src/main/resources/application.yml
index 40de2e2..d3cf0d8 100644
--- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/src/main/resources/application.yml
+++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/src/main/resources/application.yml
@@ -64,4 +64,4 @@
     org.apache.ibatis: info
     org.apache.shenyu.bonuspoint: info
     org.apache.shenyu.lottery: debug
-    org.apache.shenyu: debug
\ No newline at end of file
+    org.apache.shenyu: debug
diff --git a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/Dockerfile
index 823b11a..0cc49ae 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-apache-dubbo
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-combination/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-combination/Dockerfile
index f995f71..aab9a70 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-combination/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-combination/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-combination
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -26,4 +26,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
+CMD java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-grpc/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-grpc/Dockerfile
index 615a6cf..ce90f08 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-grpc/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-grpc/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-grpc
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-http/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-http/Dockerfile
index b810d8e..70cd9aa 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-http/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-http/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-http
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-https/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-https/Dockerfile
index 4825293..bb147a4 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-https/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-https/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:11
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-https
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/Dockerfile
index 2b09f50..e9bbdd8 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-apache-dubbo
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/Dockerfile
index 94f2929..8fcf63c 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-grpc
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/Dockerfile
index 30b3db7..7ace540 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-http
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/Dockerfile
index f438397..94dbba5 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-motan
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -26,4 +26,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
+CMD java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/Dockerfile
index db79bc5..e48f867 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-sofa
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -26,4 +26,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
+CMD java --add-opens java.base/java.lang=ALL-UNNAMED -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/Dockerfile
index b629fc4..757742e 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-spring-cloud
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/Dockerfile
index 152a7d0..725421f 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-k8s-ingress-websocket
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-motan/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-motan/Dockerfile
index 30b8058..9647f38 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-motan/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-motan/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-motan
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -26,4 +26,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
+CMD java --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/sun.net.util=ALL-UNNAMED -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-rewrite/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-rewrite/Dockerfile
index 3bf968d..ed98b89 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-rewrite/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-rewrite/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-rewrite
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/Dockerfile
index ac95c5b..ad4c8a4 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-sdk-apache-dubbo
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-sdk-http/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-sdk-http/Dockerfile
index 3a7d6aa..ad5ebf8 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-sdk-http/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-sdk-http/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-sdk-http
 ENV LOCAL_PATH /opt/${APP_NAME}
@@ -26,4 +26,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
\ No newline at end of file
+CMD java -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-sofa/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-sofa/Dockerfile
index 180f6bb..1a6a5b3 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-sofa/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-sofa/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-sofa
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/Dockerfile
index 111e275..a61b9c7 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-spring-cloud
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile
index aa0485e..74ee1f9 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 ENV APP_NAME shenyu-integrated-test-custom-plugin
 
 ADD target/shenyu-custom-plugin-2.7.0-SNAPSHOT.jar /opt/shenyu-custom-plugin.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/Dockerfile
index 4b64298..ea27ef7 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-admin
 ENV LOCAL_PATH /opt/${APP_NAME}
diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/Dockerfile
index 8baa932..28f462f 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 ENV APP_NAME shenyu-integrated-test-upload-plugin-case
 ENV LOCAL_PATH /opt/${APP_NAME}
 RUN mkdir -p ${LOCAL_PATH}
@@ -27,4 +27,4 @@
 WORKDIR ${LOCAL_PATH}
 EXPOSE 9195
 
-CMD java -jar ${APP_NAME}.jar
\ No newline at end of file
+CMD java -jar ${APP_NAME}.jar
diff --git a/shenyu-integrated-test/shenyu-integrated-test-websocket/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-websocket/Dockerfile
index 86137c2..da16e9b 100644
--- a/shenyu-integrated-test/shenyu-integrated-test-websocket/Dockerfile
+++ b/shenyu-integrated-test/shenyu-integrated-test-websocket/Dockerfile
@@ -14,7 +14,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM openjdk:8-jre-alpine
+FROM eclipse-temurin:17-centos7
 
 ENV APP_NAME shenyu-integrated-test-websocket
 ENV LOCAL_PATH /opt/${APP_NAME}