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

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 399311087f3 Fixes the issue where `HiveMetaDataLoader` creates an 
additional embedded HiveServer2 when using embedded Hive Metastore Server 
(#32552)
399311087f3 is described below

commit 399311087f39ca08eebd84706c5e835264173f66
Author: Ling Hengqian <[email protected]>
AuthorDate: Fri Aug 16 13:20:50 2024 +0800

    Fixes the issue where `HiveMetaDataLoader` creates an additional embedded 
HiveServer2 when using embedded Hive Metastore Server (#32552)
---
 .../graalvm-native-image/_index.cn.md              |  11 +-
 .../graalvm-native-image/_index.en.md              |  13 +-
 infra/database/type/hive/pom.xml                   |  10 +
 .../metadata/data/loader/HiveMetaDataLoader.java   |  19 +-
 .../reflect-config.json                            | 163 +++++++--
 .../resource-config.json                           |   3 +
 pom.xml                                            | 366 +--------------------
 .../natived/jdbc/transactions/base/SeataTest.java  |   8 +-
 8 files changed, 183 insertions(+), 410 deletions(-)

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 b8bd1fd6742..4879622e9d6 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
@@ -25,13 +25,6 @@ ShardingSphere JDBC 要求在如下或更高版本的 `GraalVM CE` 完成构建
 ```shell
 com.sun.beans.introspect.ClassInfo was unintentionally initialized at build 
time. To see why com.sun.beans.introspect.ClassInfo got initialized use 
--trace-class-initialization=com.sun.beans.introspect.ClassInfo
 java.beans.Introspector was unintentionally initialized at build time. To see 
why java.beans.Introspector got initialized use 
--trace-class-initialization=java.beans.Introspector
-com.sun.beans.util.Cache$Kind$2 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$2 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$2
-com.sun.beans.TypeResolver was unintentionally initialized at build time. To 
see why com.sun.beans.TypeResolver got initialized use 
--trace-class-initialization=com.sun.beans.TypeResolver
-java.beans.ThreadGroupContext was unintentionally initialized at build time. 
To see why java.beans.ThreadGroupContext got initialized use 
--trace-class-initialization=java.beans.ThreadGroupContext
-com.sun.beans.util.Cache$Kind was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind
-com.sun.beans.introspect.MethodInfo was unintentionally initialized at build 
time. To see why com.sun.beans.introspect.MethodInfo got initialized use 
--trace-class-initialization=com.sun.beans.introspect.MethodInfo
-com.sun.beans.util.Cache$Kind$1 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$1 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$1
-com.sun.beans.util.Cache$Kind$3 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$3 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$3
 ```
 
 ### Maven 生态
@@ -87,7 +80,7 @@ com.sun.beans.util.Cache$Kind$3 was unintentionally 
initialized at build time. T
 
 使用者需要主动使用 GraalVM Reachability Metadata 中央仓库。
 如下配置可供参考,以配置项目额外的 Gradle Tasks,以 GraalVM Native Build Tools 的文档为准。
-由于 Gradle 8.6 的限制,用户需要通过 Maven 依赖的形式引入 Metadata Repository 的 JSON 文件。
+由于 https://github.com/gradle/gradle/issues/17559 的限制,用户需要通过 Maven 依赖的形式引入 
Metadata Repository 的 JSON 文件。
 参考 https://github.com/graalvm/native-build-tools/issues/572 。
 
 ```groovy
@@ -346,7 +339,7 @@ ShardingSphere 定义了 `shardingsphere-test-native` 的 Maven 
Module 用于为
 
 ShardingSphere 定义了 `nativeTestInShardingSphere` 的 Maven Profile 用于为 
`shardingsphere-test-native` 模块执行 nativeTest 。
 
-假设贡献者处于新的 Ubuntu 22.04.3 LTS 实例下,其可通过如下 bash 命令通过 SDKMAN! 管理 JDK 和工具链,
+假设贡献者处于新的 Ubuntu 22.04.4 LTS 实例下,其可通过如下 bash 命令通过 SDKMAN! 管理 JDK 和工具链,
 并为 `shardingsphere-test-native` 子模块执行 nativeTest。
 
 你必须安装 Docker Engine 以执行 `testcontainers-java` 相关的单元测试。
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 ab76d2834ae..18547ec9a0c 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
@@ -26,13 +26,6 @@ GraalVM CE only supports AWT for GraalVM CE For JDK22 and 
higher versions.
 ```shell
 com.sun.beans.introspect.ClassInfo was unintentionally initialized at build 
time. To see why com.sun.beans.introspect.ClassInfo got initialized use 
--trace-class-initialization=com.sun.beans.introspect.ClassInfo
 java.beans.Introspector was unintentionally initialized at build time. To see 
why java.beans.Introspector got initialized use 
--trace-class-initialization=java.beans.Introspector
-com.sun.beans.util.Cache$Kind$2 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$2 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$2
-com.sun.beans.TypeResolver was unintentionally initialized at build time. To 
see why com.sun.beans.TypeResolver got initialized use 
--trace-class-initialization=com.sun.beans.TypeResolver
-java.beans.ThreadGroupContext was unintentionally initialized at build time. 
To see why java.beans.ThreadGroupContext got initialized use 
--trace-class-initialization=java.beans.ThreadGroupContext
-com.sun.beans.util.Cache$Kind was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind
-com.sun.beans.introspect.MethodInfo was unintentionally initialized at build 
time. To see why com.sun.beans.introspect.MethodInfo got initialized use 
--trace-class-initialization=com.sun.beans.introspect.MethodInfo
-com.sun.beans.util.Cache$Kind$1 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$1 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$1
-com.sun.beans.util.Cache$Kind$3 was unintentionally initialized at build time. 
To see why com.sun.beans.util.Cache$Kind$3 got initialized use 
--trace-class-initialization=com.sun.beans.util.Cache$Kind$3
 ```
 
 ### Maven Ecology
@@ -90,7 +83,7 @@ and the documentation of GraalVM Native Build Tools shall 
prevail.
 Users need to actively use the GraalVM Reachability Metadata central 
repository.
 The following configuration is for reference to configure additional Gradle 
Tasks for the project,
 and the documentation of GraalVM Native Build Tools shall prevail.
-Due to the limitations of Gradle 8.6, 
+Due to the limitations of https://github.com/gradle/gradle/issues/17559 , 
 users need to introduce the JSON file of Metadata Repository through Maven 
dependency. 
 Reference https://github.com/graalvm/native-build-tools/issues/572 .
 
@@ -362,7 +355,7 @@ This subset of unit tests avoids the use of third-party 
libraries such as Mockit
 
 ShardingSphere defines the Maven Profile of `nativeTestInShardingSphere` for 
executing nativeTest for the `shardingsphere-test-native` module.
 
-Assuming that the contributor is under a new Ubuntu 22.04.3 LTS instance, 
Contributors can manage the JDK and tool chain through 
+Assuming that the contributor is under a new Ubuntu 22.04.4 LTS instance, 
Contributors can manage the JDK and tool chain through 
 `SDKMAN!` through the following bash command, and execute nativeTest for the 
`shardingsphere-test-native` submodule.
 
 You must install Docker Engine to execute `testcontainers-java` related unit 
tests.
@@ -386,7 +379,7 @@ on https://github.com/oracle/graalvm-reachability-metadata 
. ShardingSphere acti
 some third-party libraries in the `shardingsphere-infra-reachability-metadata` 
submodule.
 
 If nativeTest execution fails, preliminary GraalVM Reachability Metadata 
should be generated for unit tests,
-and manually adjust the contents of the 
`META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata`
 folder on the classpath of the `shardingsphere-infra-reachability-metadata` 
submodule to fix nativeTest.
+and manually adjust the contents of the 
`META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/`
 folder on the classpath of the `shardingsphere-infra-reachability-metadata` 
submodule to fix nativeTest.
 If necessary, 
 use the `org.junit.jupiter.api.condition.DisabledInNativeImage` annotation or 
the `org.graalvm.nativeimage.imagecode` System Property blocks some unit tests 
from running under GraalVM Native Image.
 
diff --git a/infra/database/type/hive/pom.xml b/infra/database/type/hive/pom.xml
index 671a4a6fd95..81e63225739 100644
--- a/infra/database/type/hive/pom.xml
+++ b/infra/database/type/hive/pom.xml
@@ -36,6 +36,16 @@
         <dependency>
             <groupId>org.apache.hive</groupId>
             <artifactId>hive-jdbc</artifactId>
+            <version>${hive.version}</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>io.github.linghengqian</groupId>
+            <artifactId>hive-server2-jdbc-driver-thin</artifactId>
+            <version>${hive-server2-jdbc-driver-thin.version}</version>
+            <scope>provided</scope>
+            <optional>true</optional>
         </dependency>
         
         <dependency>
diff --git 
a/infra/database/type/hive/src/main/java/org/apache/shardingsphere/infra/database/hive/metadata/data/loader/HiveMetaDataLoader.java
 
b/infra/database/type/hive/src/main/java/org/apache/shardingsphere/infra/database/hive/metadata/data/loader/HiveMetaDataLoader.java
index 6c58c7aeb9a..df7da760166 100644
--- 
a/infra/database/type/hive/src/main/java/org/apache/shardingsphere/infra/database/hive/metadata/data/loader/HiveMetaDataLoader.java
+++ 
b/infra/database/type/hive/src/main/java/org/apache/shardingsphere/infra/database/hive/metadata/data/loader/HiveMetaDataLoader.java
@@ -23,6 +23,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Table;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.DialectMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoaderMaterial;
+import 
org.apache.shardingsphere.infra.database.core.metadata.data.loader.type.TableMetaDataLoader;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.ColumnMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.SchemaMetaData;
 import 
org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMetaData;
@@ -31,7 +32,9 @@ import org.apache.thrift.TException;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
+import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.Statement;
 import java.sql.Types;
 import java.util.Collection;
 import java.util.Collections;
@@ -45,13 +48,27 @@ public final class HiveMetaDataLoader implements 
DialectMetaDataLoader {
     
     private static final String HIVE_METASTORE_URIS = "hive.metastore.uris";
     
+    @SuppressWarnings("SqlNoDataSourceInspection")
     @Override
     public Collection<SchemaMetaData> load(final MetaDataLoaderMaterial 
material) throws SQLException {
+        String hiveMetastoreUris;
+        try (Statement statement = 
material.getDataSource().getConnection().createStatement()) {
+            ResultSet resultSet = statement.executeQuery("SET 
hive.metastore.uris");
+            resultSet.next();
+            hiveMetastoreUris = resultSet.getString("set");
+        }
+        if ("hive.metastore.uris is undefined".equals(hiveMetastoreUris)) {
+            Collection<TableMetaData> tableMetaData = new LinkedList<>();
+            for (String each : material.getActualTableNames()) {
+                TableMetaDataLoader.load(material.getDataSource(), each, 
material.getStorageType()).ifPresent(tableMetaData::add);
+            }
+            return Collections.singletonList(new 
SchemaMetaData(material.getDefaultSchemaName(), tableMetaData));
+        }
         HiveMetaStoreClient storeClient = null;
         try {
             // TODO Support set hive.metastore uris when register storage unit.
             HiveConf hiveConf = new HiveConf();
-            hiveConf.set(HIVE_METASTORE_URIS, "");
+            hiveConf.set(HIVE_METASTORE_URIS, hiveMetastoreUris);
             storeClient = new HiveMetaStoreClient(hiveConf);
             return Collections.singletonList(new 
SchemaMetaData(material.getDefaultSchemaName(),
                     
getTableMetaData(storeClient.getAllTables(material.getDefaultSchemaName()), 
storeClient, material)));
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
index 5bcd4e57449..fd7dc365d0f 100644
--- 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json
@@ -84,6 +84,25 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
   
"name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getAuthenticators","parameterTypes":[] }, 
{"name":"getDefaultAuthenticator","parameterTypes":[] }, 
{"name":"getPrivilege","parameterTypes":[] }, 
{"name":"getUsers","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfigurationBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfigurationCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.route.engine.impl.PartialSQLRouteExecutor"},
   "name":"org.apache.shardingsphere.broadcast.route.BroadcastSQLRouter"
@@ -266,6 +285,25 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
   
"name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfiguration"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getProps","parameterTypes":[] }, 
{"name":"getProvider","parameterTypes":[] }, 
{"name":"getType","parameterTypes":[] }, 
{"name":"isEnabled","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfigurationBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfigurationCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   
"name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration",
@@ -540,12 +578,12 @@
   "name":"org.apache.shardingsphere.infra.util.eventbus.EventSubscriber"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.event.subsciber.DeliverEventSubscriberRegistry$$Lambda/0x00007f484f4738b8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.event.subsciber.DeliverEventSubscriberRegistry$$Lambda/0x00007f35bb470bf8"},
   "name":"org.apache.shardingsphere.infra.util.eventbus.EventSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   "name":"org.apache.shardingsphere.infra.util.eventbus.EventSubscriber",
   "queryAllDeclaredMethods":true
 },
@@ -559,6 +597,11 @@
   "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
   "queryAllPublicMethods":true
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.ClusterMetaDataManagerPersistService"},
+  "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
+  "queryAllPublicMethods":true
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.service.ComputeNodePersistService"},
   "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
@@ -595,7 +638,7 @@
   
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.mode.YamlPersistRepositoryConfigurationCustomizer"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
   
"name":"org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlGlobalRuleConfiguration",
   "queryAllPublicMethods":true
 },
@@ -680,6 +723,19 @@
   "allDeclaredFields":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, 
{"name":"getColumns","parameterTypes":[] }, 
{"name":"getConstraints","parameterTypes":[] }, 
{"name":"getIndexes","parameterTypes":[] }, 
{"name":"getName","parameterTypes":[] }, {"name":"getType","parameterTypes":[] 
}, {"name":"setColumns","parameterTypes":["java.util.Map"] }, 
{"name":"setIndexes","parameterTypes":["java.util.Map"] }, 
{"name":"setName","parameterTypes":["java.lang.String"] }, 
{"name":"setType","parameterTypes":["org.apa [...]
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.ClusterMetaDataManagerPersistService"},
+  
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.ClusterMetaDataManagerPersistService"},
+  
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.ClusterMetaDataManagerPersistService"},
+  
"name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder"},
   "name":"org.apache.shardingsphere.logging.rule.builder.LoggingRuleBuilder"
@@ -841,7 +897,7 @@
   
"name":"org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfigurationCustomizer"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.event.subsciber.DeliverEventSubscriberRegistry$$Lambda/0x00007f484f4738b8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.event.subsciber.DeliverEventSubscriberRegistry$$Lambda/0x00007f35bb470bf8"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.deliver.DeliverQualifiedDataSourceSubscriber",
   "queryAllDeclaredMethods":true
 },
@@ -851,42 +907,42 @@
   
"methods":[{"name":"cleanCache","parameterTypes":["org.apache.shardingsphere.mode.event.dispatch.DispatchEvent"]
 }]
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.CacheEvictedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ComputeNodeOnlineSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.DatabaseChangedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.GlobalRuleConfigurationEventSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ListenerAssistedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ProcessListChangedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.PropertiesEventSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.QualifiedDataSourceSubscriber",
   "queryAllDeclaredMethods":true
 },
@@ -895,26 +951,26 @@
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ResourceMetaDataChangedSubscriber"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ResourceMetaDataChangedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.listener.MetaDataChangedListener$$Lambda/0x00007f484f5d2048"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.listener.MetaDataChangedListener$$Lambda/0x00007f35bb5d31e8"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.ResourceMetaDataChangedSubscriber"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.RuleItemChangedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.StateChangedSubscriber",
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f484f48d3f8"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.registry.ClusterDispatchEventSubscriberRegistry$$Lambda/0x00007f35bb48eee0"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.StorageUnitEventSubscriber",
   "queryAllDeclaredMethods":true
 },
@@ -983,6 +1039,25 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
   
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getParseTreeCache","parameterTypes":[] }, 
{"name":"getSqlStatementCache","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfigurationCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
   
"name":"org.apache.shardingsphere.readwritesplitting.checker.ReadwriteSplittingRuleConfigurationChecker"
@@ -1583,6 +1658,25 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
   
"name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getExecutionPlanCache","parameterTypes":[] }, 
{"name":"isAllQueryUseSQLFederation","parameterTypes":[] }, 
{"name":"isSqlFederationEnabled","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfigurationBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfigurationCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.sqltranslator.rule.SQLTranslatorRule"},
   "name":"org.apache.shardingsphere.sqltranslator.natived.NativeSQLTranslator"
@@ -1599,6 +1693,25 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.config.shortcut.YamlRuleConfigurationShortcuts"},
   
"name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration"
 },
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getProps","parameterTypes":[] }, 
{"name":"getType","parameterTypes":[] }, 
{"name":"isUseOriginalSQLWhenTranslatingFailed","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfigurationBeanInfo"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfigurationCustomizer"
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.rule.builder.global.GlobalRulesBuilder"},
   
"name":"org.apache.shardingsphere.timeservice.core.rule.builder.DefaultTimestampServiceConfigurationBuilder"
@@ -1649,7 +1762,6 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration",
   "allDeclaredFields":true,
-  "queryAllPublicMethods":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, 
{"name":"setDefaultType","parameterTypes":["java.lang.String"] }, 
{"name":"setProviderType","parameterTypes":["java.lang.String"] }]
 },
 {
@@ -1657,11 +1769,22 @@
   
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"},
+  
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration",
+  "allDeclaredFields":true,
+  "methods":[{"name":"getDefaultType","parameterTypes":[] }, 
{"name":"getProps","parameterTypes":[] }, 
{"name":"getProviderType","parameterTypes":[] }]
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration",
+  "queryAllPublicMethods":true
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
   
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfigurationBeanInfo"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
   
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfigurationCustomizer"
 }
 ]
\ No newline at end of file
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
index 492f2a423c8..cb3d89b3b84 100644
--- 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
+++ 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
@@ -192,6 +192,9 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.lock.holder.DistributedLockHolder"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.cluster.lock.creator.DistributedLockCreator\\E"
+  }, {
+    
"condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.decorator.RuleConfigurationPersistDecorateEngine"},
+    
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.spi.RuleConfigurationPersistDecorator\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.readwritesplitting.route.standard.StandardReadwriteSplittingDataSourceRouter"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.readwritesplitting.route.standard.filter.ReadDataSourcesFilter\\E"
diff --git a/pom.xml b/pom.xml
index 0fa51e1ce57..45cf9cbb3fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,7 +125,8 @@
         <opengauss.version>3.1.0-og</opengauss.version>
         <mariadb-java-client.version>2.4.2</mariadb-java-client.version>
         <clickhouse-jdbc.version>0.6.3</clickhouse-jdbc.version>
-        <hive.version>3.1.3</hive.version>
+        <hive.version>4.0.0</hive.version>
+        
<hive-server2-jdbc-driver-thin.version>1.0.0</hive-server2-jdbc-driver-thin.version>
         <presto.version>0.282</presto.version>
         
         <hikari-cp.version>4.0.3</hikari-cp.version>
@@ -145,34 +146,6 @@
         <graal-sdk.version>24.0.2</graal-sdk.version>
         <jedis.version>4.4.6</jedis.version>
         
-        <joda-time.version>2.9.9</joda-time.version>
-        <jackson-asl.version>1.9.13</jackson-asl.version>
-        <commons-lang.version>2.6</commons-lang.version>
-        <commons-beanutils.version>1.9.4</commons-beanutils.version>
-        <commons-cli.version>1.4</commons-cli.version>
-        <commons-compress.version>1.26.2</commons-compress.version>
-        <commons-io.version>2.11.0</commons-io.version>
-        <commons-net.version>3.6</commons-net.version>
-        <httpclient.version>4.5.14</httpclient.version>
-        <httpcore.version>4.4.15</httpcore.version>
-        <guice.version>4.0</guice.version>
-        <hadoop.version>3.1.0</hadoop.version>
-        <avro.version>1.7.7</avro.version>
-        <libthrift.version>0.9.3</libthrift.version>
-        <nimbus.version>4.41.1</nimbus.version>
-        <metrics-core.version>3.2.1</metrics-core.version>
-        <jcodings.version>1.0.18</jcodings.version>
-        <jersey.version>1.19</jersey.version>
-        <jetty.version>9.3.20.v20170531</jetty.version>
-        <jline.version>2.14.3</jline.version>
-        <jsr305.version>3.0.2</jsr305.version>
-        <snappy.version>1.1.10.5</snappy.version>
-        <jettison.version>1.5.4</jettison.version>
-        <jamon.version>2.4.1</jamon.version>
-        <okio.version>3.6.0</okio.version>
-        <re2j.version>1.7</re2j.version>
-        <derby.version>10.14.2.0</derby.version>
-        
         <!-- 3rd party library plugin versions -->
         <protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
         <dockerfile-maven.version>1.4.13</dockerfile-maven.version>
@@ -503,158 +476,6 @@
                 <classifier>http</classifier>
                 <scope>test</scope>
             </dependency>
-            <dependency>
-                <groupId>org.apache.hive</groupId>
-                <artifactId>hive-jdbc</artifactId>
-                <version>${hive.version}</version>
-                <scope>provided</scope>
-                <exclusions>
-                    <exclusion>
-                        <groupId>org.glassfish</groupId>
-                        <artifactId>javax.el</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.github.joshelser</groupId>
-                        
<artifactId>dropwizard-metrics-hadoop-metrics2-reporter</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.zaxxer</groupId>
-                        <artifactId>HikariCP-java7</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.slf4j</groupId>
-                        <artifactId>slf4j-log4j12</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.logging.log4j</groupId>
-                        <artifactId>log4j-slf4j-impl</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.logging.log4j</groupId>
-                        <artifactId>log4j-1.2-api</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-collections</groupId>
-                        <artifactId>commons-collections</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>jdk.tools</groupId>
-                        <artifactId>jdk.tools</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>log4j</groupId>
-                        <artifactId>log4j</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.logging.log4j</groupId>
-                        <artifactId>log4j-web</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.hadoop</groupId>
-                        
<artifactId>hadoop-yarn-server-resourcemanager</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-http</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-rewrite</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-server</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-servlet</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-webapp</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.orc</groupId>
-                        <artifactId>orc-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.jcraft</groupId>
-                        <artifactId>jsch</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>jline</groupId>
-                        <artifactId>jline</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>io.dropwizard.metrics</groupId>
-                        <artifactId>metrics-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>io.dropwizard.metrics</groupId>
-                        <artifactId>metrics-json</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>io.dropwizard.metrics</groupId>
-                        <artifactId>metrics-jvm</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.ant</groupId>
-                        <artifactId>ant</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.hive</groupId>
-                        <artifactId>hive-serde</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>co.cask.tephra</groupId>
-                        <artifactId>tephra-api</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>co.cask.tephra</groupId>
-                        <artifactId>tephra-core</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>co.cask.tephra</groupId>
-                        <artifactId>tephra-hbase-compat-1.0</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.eclipse.jetty</groupId>
-                        <artifactId>jetty-util</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.sun.jersey</groupId>
-                        <artifactId>jersey-servlet</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.jruby.joni</groupId>
-                        <artifactId>joni</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>sqlline</groupId>
-                        <artifactId>sqlline</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.hbase</groupId>
-                        <artifactId>hbase-metrics</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>org.apache.hbase</groupId>
-                        <artifactId>hbase-metrics-api</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>com.jolbox</groupId>
-                        <artifactId>bonecp</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>commons-dbcp</groupId>
-                        <artifactId>commons-dbcp</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>junit</groupId>
-                        <artifactId>junit</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
             <dependency>
                 <groupId>com.facebook.presto</groupId>
                 <artifactId>presto-jdbc</artifactId>
@@ -743,188 +564,6 @@
                 <version>${jedis.version}</version>
                 <scope>provided</scope>
             </dependency>
-            
-            <dependency>
-                <groupId>joda-time</groupId>
-                <artifactId>joda-time</artifactId>
-                <version>${joda-time.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-                <version>${jackson-asl.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-                <version>${jackson-asl.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-lang</groupId>
-                <artifactId>commons-lang</artifactId>
-                <version>${commons-lang.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-beanutils</groupId>
-                <artifactId>commons-beanutils</artifactId>
-                <version>${commons-beanutils.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-cli</groupId>
-                <artifactId>commons-cli</artifactId>
-                <version>${commons-cli.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-compress</artifactId>
-                <version>${commons-compress.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-io</groupId>
-                <artifactId>commons-io</artifactId>
-                <version>${commons-io.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>commons-net</groupId>
-                <artifactId>commons-net</artifactId>
-                <version>${commons-net.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpclient</artifactId>
-                <version>${httpclient.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.httpcomponents</groupId>
-                <artifactId>httpcore</artifactId>
-                <version>${httpcore.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.inject</groupId>
-                <artifactId>guice</artifactId>
-                <version>${guice.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.inject.extensions</groupId>
-                <artifactId>guice-servlet</artifactId>
-                <version>${guice.version}</version>
-            </dependency>
-            
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-annotations</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-common</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-auth</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-hdfs</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-yarn-api</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-yarn-common</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-yarn-server-common</artifactId>
-                <version>${hadoop.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.avro</groupId>
-                <artifactId>avro</artifactId>
-                <version>${avro.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.thrift</groupId>
-                <artifactId>libthrift</artifactId>
-                <version>${libthrift.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.nimbusds</groupId>
-                <artifactId>nimbus-jose-jwt</artifactId>
-                <version>${nimbus.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>io.dropwizard.metrics</groupId>
-                <artifactId>metrics-core</artifactId>
-                <version>${metrics-core.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.jruby.jcodings</groupId>
-                <artifactId>jcodings</artifactId>
-                <version>${jcodings.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-                <version>${jersey.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-security</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util-ajax</artifactId>
-                <version>${jetty.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.code.findbugs</groupId>
-                <artifactId>jsr305</artifactId>
-                <version>${jsr305.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.xerial.snappy</groupId>
-                <artifactId>snappy-java</artifactId>
-                <version>${snappy.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.codehaus.jettison</groupId>
-                <artifactId>jettison</artifactId>
-                <version>${jettison.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.jamon</groupId>
-                <artifactId>jamon-runtime</artifactId>
-                <version>${jamon.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.squareup.okio</groupId>
-                <artifactId>okio</artifactId>
-                <version>${okio.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.re2j</groupId>
-                <artifactId>re2j</artifactId>
-                <version>${re2j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.derby</groupId>
-                <artifactId>derby</artifactId>
-                <version>${derby.version}</version>
-            </dependency>
         </dependencies>
     </dependencyManagement>
     
@@ -1338,7 +977,6 @@
                         <plugin>
                             <artifactId>maven-surefire-plugin</artifactId>
                             <configuration>
-                                <trimStackTrace>false</trimStackTrace>
                                 <argLine>--add-opens 
java.base/java.lang=ALL-UNNAMED --add-opens 
java.base/java.lang.reflect=ALL-UNNAMED --add-opens 
java.base/sun.net=ALL-UNNAMED --add-opens 
java.base/java.net=ALL-UNNAMED</argLine>
                             </configuration>
                         </plugin>
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
index ea909f7611b..2017e35e865 100644
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
+++ 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java
@@ -19,7 +19,6 @@ package 
org.apache.shardingsphere.test.natived.jdbc.transactions.base;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
-import org.apache.hc.core5.http.HttpStatus;
 import org.apache.shardingsphere.test.natived.jdbc.commons.TestShardingService;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -41,14 +40,11 @@ import static org.hamcrest.Matchers.nullValue;
 @Testcontainers
 class SeataTest {
     
-    /**
-     * TODO Further processing of `/health` awaits <a 
href="https://github.com/apache/incubator-seata/pull/6356";>apache/incubator-seata#6356</a>.
-     */
     @SuppressWarnings("resource")
     @Container
-    public static final GenericContainer<?> CONTAINER = new 
GenericContainer<>("seataio/seata-server:1.8.0")
+    public static final GenericContainer<?> CONTAINER = new 
GenericContainer<>("apache/seata-server:2.1.0")
             .withExposedPorts(7091, 8091)
-            
.waitingFor(Wait.forHttp("/health").forPort(7091).forStatusCode(HttpStatus.SC_UNAUTHORIZED));
+            
.waitingFor(Wait.forHttp("/health").forPort(7091).forResponsePredicate(s -> 
s.equals("ok")));
     
     private static final String SERVICE_DEFAULT_GROUP_LIST_KEY = 
"service.default.grouplist";
     

Reply via email to