diff --git a/.github/workflows/nightly-e2e-agent.yml b/.github/workflows/nightly-e2e-agent.yml
index af2e92cd545cf..c94cb052525ef 100644
--- a/.github/workflows/nightly-e2e-agent.yml
+++ b/.github/workflows/nightly-e2e-agent.yml
@@ -79,7 +79,7 @@ jobs:
if: github.repository == 'apache/shardingsphere'
needs: [ global-environment, build-e2e-image ]
runs-on: ubuntu-latest
- timeout-minutes: 15
+ timeout-minutes: 40
strategy:
max-parallel: 20
fail-fast: false
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 940404707d6b4..091e36830b4e5 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -55,6 +55,7 @@
1. Agent: Simplify the use of Agent's Docker Image - [#33356](https://github.com/apache/shardingsphere/pull/33356)
1. Mode: Support modifying Hikari-CP configurations via props in standalone mode [#34185](https://github.com/apache/shardingsphere/pull/34185)
1. Encrypt: Support insert statement rewrite use quote [#34259](https://github.com/apache/shardingsphere/pull/34259)
+1. Infra: Support connecting to Firebird via jdbcUrl containing the absolute path to fdb - [#34335](https://github.com/apache/shardingsphere/pull/34335)
### Bug Fixes
diff --git a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
index 42c90335bb88f..981701cafa165 100644
--- a/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
+++ b/agent/plugins/metrics/type/prometheus/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/prometheus/PrometheusPluginLifecycleServiceTest.java
@@ -30,7 +30,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
diff --git a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessor.java b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessor.java
index da5a40a4ef71d..6b550f7cb9a2d 100644
--- a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessor.java
+++ b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessor.java
@@ -22,9 +22,9 @@
import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import java.util.LinkedHashSet;
import java.util.LinkedList;
diff --git a/features/broadcast/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/broadcast/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/broadcast/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/broadcast/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessorTest.java b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessorTest.java
index c97db46ade266..1816011bb29e8 100644
--- a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessorTest.java
+++ b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/rule/changed/BroadcastTableChangedProcessorTest.java
@@ -22,9 +22,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessor.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessor.java
index ab9c4b27a2bbc..ee03321abc937 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessor.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessor.java
@@ -25,10 +25,10 @@
import org.apache.shardingsphere.encrypt.yaml.swapper.rule.YamlEncryptTableRuleConfigurationSwapper;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import java.util.LinkedHashMap;
import java.util.LinkedList;
diff --git a/features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/encrypt/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessorTest.java
index 3891741218b47..e846f1cd3e629 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptTableChangedProcessorTest.java
@@ -29,9 +29,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
diff --git a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptorChangedProcessorTest.java b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptorChangedProcessorTest.java
index b850abc9baa25..432813b979053 100644
--- a/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptorChangedProcessorTest.java
+++ b/features/encrypt/core/src/test/java/org/apache/shardingsphere/encrypt/rule/changed/EncryptorChangedProcessorTest.java
@@ -22,9 +22,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
index 2937b6bfb53dc..8faef0111b25d 100644
--- a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
+++ b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessor.java
@@ -25,10 +25,10 @@
import org.apache.shardingsphere.mask.rule.MaskRule;
import org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration;
import org.apache.shardingsphere.mask.yaml.swapper.rule.YamlMaskTableRuleConfigurationSwapper;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import java.util.LinkedHashMap;
import java.util.LinkedList;
diff --git a/features/mask/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/mask/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/mask/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/mask/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
index f127503ead0bd..dac0176f6cdb0 100644
--- a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
+++ b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskAlgorithmChangedProcessorTest.java
@@ -22,9 +22,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mask.config.MaskRuleConfiguration;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
index 1a7d5af239a38..e0f281a2a41e3 100644
--- a/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
+++ b/features/mask/core/src/test/java/org/apache/shardingsphere/mask/rule/changed/MaskTableChangedProcessorTest.java
@@ -27,9 +27,9 @@
import org.apache.shardingsphere.mask.rule.MaskRule;
import org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskColumnRuleConfiguration;
import org.apache.shardingsphere.mask.yaml.config.rule.YamlMaskTableRuleConfiguration;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriber.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriber.java
index 8d38f944d7760..034737c19f065 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriber.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriber.java
@@ -21,7 +21,7 @@
import lombok.Setter;
import org.apache.shardingsphere.mode.node.path.metadata.QualifiedDataSourceNodePath;
import org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Readwrite-splitting qualified data source changed subscriber.
diff --git a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessor.java b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessor.java
index 45a9f1210a094..500535d6f8be6 100644
--- a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessor.java
+++ b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessor.java
@@ -20,11 +20,11 @@
import com.google.common.base.Strings;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.config.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.metadata.nodepath.ReadwriteSplittingRuleNodePathProvider;
diff --git a/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriberTest.java b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriberTest.java
index c0bebf8fdb376..76794f4a95ec5 100644
--- a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriberTest.java
+++ b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/deliver/ReadwriteSplittingQualifiedDataSourceChangedSubscriberTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.readwritesplitting.deliver;
import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDataSource;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessorTest.java b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessorTest.java
index e0c6995309b39..55d8e8d7cb2a7 100644
--- a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessorTest.java
+++ b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingDataSourceChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.config.rule.ReadwriteSplittingDataSourceGroupRuleConfiguration;
import org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
diff --git a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingLoadBalancerChangedProcessorTest.java b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingLoadBalancerChangedProcessorTest.java
index 97e941359e4ac..bfbe7bb28f1bf 100644
--- a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingLoadBalancerChangedProcessorTest.java
+++ b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/rule/changed/ReadwriteSplittingLoadBalancerChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.readwritesplitting.config.ReadwriteSplittingRuleConfiguration;
import org.junit.jupiter.api.Test;
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessor.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessor.java
index 70ae6c72e4dcb..826f0778fe725 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessor.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessor.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.shadow.rule.changed;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
import org.apache.shardingsphere.shadow.rule.ShadowRule;
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessor.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessor.java
index aaed80347cd42..edb767c99ebfe 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessor.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessor.java
@@ -19,11 +19,11 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.config.datasource.ShadowDataSourceConfiguration;
import org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
diff --git a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessor.java b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessor.java
index 2a1c7ab18c0f2..96216b751004f 100644
--- a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessor.java
+++ b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessor.java
@@ -19,11 +19,11 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.config.table.ShadowTableConfiguration;
import org.apache.shardingsphere.shadow.metadata.nodepath.ShadowRuleNodePathProvider;
diff --git a/features/shadow/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/shadow/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/shadow/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/shadow/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessorTest.java b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessorTest.java
index f106aaa5b30cd..78ab596c54fc2 100644
--- a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessorTest.java
+++ b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/DefaultShadowAlgorithmNameChangedProcessorTest.java
@@ -20,9 +20,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.rule.ShadowRule;
import org.junit.jupiter.api.Test;
diff --git a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowAlgorithmChangedProcessorTest.java b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowAlgorithmChangedProcessorTest.java
index 6a7a1a75c08e3..b85a0228a5ef9 100644
--- a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowAlgorithmChangedProcessorTest.java
+++ b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowAlgorithmChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.junit.jupiter.api.Test;
diff --git a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessorTest.java b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessorTest.java
index 849f8fc802773..8b0481f8f862b 100644
--- a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessorTest.java
+++ b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowDataSourceChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.config.datasource.ShadowDataSourceConfiguration;
import org.apache.shardingsphere.shadow.rule.ShadowRule;
diff --git a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessorTest.java b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessorTest.java
index b3e52dc34270d..193bdbbe1f531 100644
--- a/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessorTest.java
+++ b/features/shadow/core/src/test/java/org/apache/shardingsphere/shadow/rule/changed/ShadowTableChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.shadow.config.ShadowRuleConfiguration;
import org.apache.shardingsphere.shadow.config.table.ShadowTableConfiguration;
import org.apache.shardingsphere.shadow.rule.ShadowRule;
diff --git a/features/sharding/core/pom.xml b/features/sharding/core/pom.xml
index 9d094faf44df5..6f16de4f56140 100644
--- a/features/sharding/core/pom.xml
+++ b/features/sharding/core/pom.xml
@@ -40,7 +40,7 @@
org.apache.shardingsphere
- shardingsphere-mode-node
+ shardingsphere-mode-core
${project.version}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessor.java
index 0bfaa6d60bd9b..0e9ac49032a1f 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessor.java
index 159cd719a82b4..1e6ae76f2c880 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessor.java
index c2bcb13797e3b..a46c370503b36 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessor.java
index 41ce9f75391a6..bb6b10d1e0568 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessor.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.sharding.rule.changed;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessor.java
index d98865fffd8a9..7376ac8147403 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessor.java
index 39a325babeeb7..8cff17983ba07 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessor.java
@@ -19,11 +19,11 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessor.java
index ac615b619ed0f..ebe1d8df99967 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessor.java
index fcdc9d9a65432..4f03a672d0c03 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessor.java
@@ -19,11 +19,11 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessor.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessor.java
index 157d72d1271dc..699093603d503 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessor.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessor.java
@@ -18,11 +18,11 @@
package org.apache.shardingsphere.sharding.rule.changed;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
import org.apache.shardingsphere.sharding.metadata.nodepath.ShardingRuleNodePathProvider;
diff --git a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessorTest.java
index 7452c57e179c7..e48aed02d434b 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultDatabaseShardingStrategyChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.HintShardingStrategyConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessorTest.java
index 4166bf97ae3d7..40a6be833b793 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultKeyGenerateStrategyChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessorTest.java
index 22267bfc449ed..6da1cb56a1246 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingAuditorStrategyChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessorTest.java
index e7dba180b9979..3528bd17b6ea6 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultShardingColumnChangedProcessorTest.java
@@ -20,9 +20,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.junit.jupiter.api.Test;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessorTest.java
index 72f37507e86f4..db679af3adce7 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/DefaultTableShardingStrategyChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.HintShardingStrategyConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/KeyGeneratorChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/KeyGeneratorChangedProcessorTest.java
index 59f1e06be2da0..c4c5fd0aef6f3 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/KeyGeneratorChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/KeyGeneratorChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.junit.jupiter.api.Test;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAlgorithmChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAlgorithmChangedProcessorTest.java
index 7c2ee8d5eb432..8447bea553c77 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAlgorithmChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAlgorithmChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.junit.jupiter.api.Test;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAuditorChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAuditorChangedProcessorTest.java
index 1ce69e08aebbd..1ee2d42b880da 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAuditorChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAuditorChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.junit.jupiter.api.Test;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessorTest.java
index 0daa537c9cab5..e2f007ce87717 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingAutoTableChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessorTest.java
index 478da53bfb84e..b74a486b1ddeb 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingCacheChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
import org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheOptionsConfiguration;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessorTest.java
index d03d58e8cae29..ede2e8cfb58df 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableChangedProcessorTest.java
@@ -21,9 +21,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessorTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessorTest.java
index 18567692fa464..fdc0ecb318db7 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessorTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/rule/changed/ShardingTableReferenceChangedProcessorTest.java
@@ -20,9 +20,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
diff --git a/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessor.java b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessor.java
index 076437133a79a..ae358ad10c20f 100644
--- a/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessor.java
+++ b/infra/algorithm/core/src/main/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessor.java
@@ -25,11 +25,11 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import java.util.Map;
diff --git a/infra/algorithm/core/src/test/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessorTest.java b/infra/algorithm/core/src/test/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessorTest.java
index 181104e65b0fc..69cdfc53919cb 100644
--- a/infra/algorithm/core/src/test/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessorTest.java
+++ b/infra/algorithm/core/src/test/java/org/apache/shardingsphere/infra/algorithm/core/processor/AlgorithmChangedProcessorTest.java
@@ -25,9 +25,9 @@
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import org.junit.jupiter.api.Test;
import java.util.Collections;
diff --git a/infra/algorithm/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/infra/algorithm/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from infra/algorithm/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to infra/algorithm/core/src/test/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/infra/database/type/firebird/pom.xml b/infra/database/type/firebird/pom.xml
index 95ef8db8741b5..c32065c71186a 100644
--- a/infra/database/type/firebird/pom.xml
+++ b/infra/database/type/firebird/pom.xml
@@ -33,6 +33,13 @@
${project.version}
+
+ org.firebirdsql.jdbc
+ jaybird
+ provided
+ true
+
+
org.apache.shardingsphere
shardingsphere-test-util
diff --git a/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java b/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java
index 0f803ebd0e64c..7d7392c8ef805 100644
--- a/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java
+++ b/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java
@@ -17,11 +17,14 @@
package org.apache.shardingsphere.infra.database.firebird.connector;
+import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties;
import org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser;
import org.apache.shardingsphere.infra.database.core.connector.StandardConnectionProperties;
-import org.apache.shardingsphere.infra.database.core.connector.url.JdbcUrl;
-import org.apache.shardingsphere.infra.database.core.connector.url.StandardJdbcUrlParser;
+import org.firebirdsql.gds.impl.DbAttachInfo;
+import org.firebirdsql.gds.impl.GDSFactory;
+import org.firebirdsql.gds.impl.GDSType;
+import org.firebirdsql.jdbc.FBDriver;
import java.util.Properties;
@@ -30,12 +33,18 @@
*/
public final class FirebirdConnectionPropertiesParser implements ConnectionPropertiesParser {
- private static final int DEFAULT_PORT = 3050;
-
+ @SneakyThrows(Exception.class)
@Override
public ConnectionProperties parse(final String url, final String username, final String catalog) {
- JdbcUrl jdbcUrl = new StandardJdbcUrlParser().parse(url);
- return new StandardConnectionProperties(jdbcUrl.getHostname(), jdbcUrl.getPort(DEFAULT_PORT), jdbcUrl.getDatabase(), null, jdbcUrl.getQueryProperties(), new Properties());
+ GDSType type = GDSFactory.getTypeForProtocol(url);
+ String databaseURL = GDSFactory.getDatabasePath(type, url);
+ DbAttachInfo dbAttachInfo = DbAttachInfo.parseConnectString(databaseURL);
+ String attachObjectName = dbAttachInfo.getAttachObjectName();
+ String databaseName = attachObjectName.contains("?") ? attachObjectName.split("\\?")[0] : attachObjectName;
+ Properties queryProperties = new Properties();
+ queryProperties.putAll(FBDriver.normalizeProperties(url, new Properties()));
+ return new StandardConnectionProperties(dbAttachInfo.getServerName(), dbAttachInfo.getPortNumber(),
+ databaseName, null, queryProperties, new Properties());
}
@Override
diff --git a/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java b/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java
index a980af1367ca9..604f617f8aa32 100644
--- a/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java
+++ b/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java
@@ -19,10 +19,10 @@
import org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties;
import org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser;
-import org.apache.shardingsphere.infra.database.core.exception.UnrecognizedDatabaseURLException;
import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
+import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.ParameterizedTest;
@@ -30,11 +30,13 @@
import org.junit.jupiter.params.provider.ArgumentsProvider;
import org.junit.jupiter.params.provider.ArgumentsSource;
+import java.sql.SQLNonTransientConnectionException;
import java.util.Properties;
import java.util.stream.Stream;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
class FirebirdConnectionPropertiesParserTest {
@@ -54,14 +56,29 @@ void assertNewConstructor(final String name, final String url, final String host
@Test
void assertNewConstructorFailure() {
- assertThrows(UnrecognizedDatabaseURLException.class, () -> parser.parse("jdbc:firebirdsql:xxxxxxxx", null, null));
+ assertDoesNotThrow(() -> parser.parse("jdbc:firebirdsql:xxxxxxxx", null, null));
+ assertThrows(SQLNonTransientConnectionException.class, () -> parser.parse("jdbc:firebirdsql://localhost:c:/data/db/test.fdb", null, null));
}
private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
@Override
public Stream extends Arguments> provideArguments(final ExtensionContext extensionContext) {
- return Stream.of(Arguments.of("simple", "jdbc:firebirdsql://127.0.0.1/foo_ds", "127.0.0.1", 3050, "foo_ds", null, new Properties()));
+ return Stream.of(
+ Arguments.of("simple_first", "jdbc:firebirdsql://127.0.0.1/foo_ds", "127.0.0.1", 3050, "foo_ds", null, new Properties()),
+ Arguments.of("simple_second", "jdbc:firebird://localhost:32783//var/lib/firebird/data/demo_ds_2.fdb",
+ "localhost", 32783, "/var/lib/firebird/data/demo_ds_2.fdb", null, new Properties()),
+ Arguments.of("simple_third", "jdbc:firebirdsql://localhost/database?socket_buffer_size=32767", "localhost", 3050, "database", null, PropertiesBuilder.build(
+ new PropertiesBuilder.Property("socketBufferSize", "32767"))),
+ Arguments.of("complex",
+ "jdbc:firebirdsql://localhost/database?socket_buffer_size=32767"
+ + "&TRANSACTION_REPEATABLE_READ=concurrency,write,no_wait&columnLabelForName&soTimeout=1000&nonStandard2=value2",
+ "localhost", 3050, "database", null, PropertiesBuilder.build(
+ new PropertiesBuilder.Property("socketBufferSize", "32767"),
+ new PropertiesBuilder.Property("TRANSACTION_REPEATABLE_READ", "concurrency,write,no_wait"),
+ new PropertiesBuilder.Property("columnLabelForName", ""),
+ new PropertiesBuilder.Property("soTimeout", "1000"),
+ new PropertiesBuilder.Property("nonStandard2", "value2"))));
}
}
}
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessor.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessor.java
index 19f5b12c1f91c..4615f399046c2 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessor.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessor.java
@@ -18,9 +18,9 @@
package org.apache.shardingsphere.single.rule.changed;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.apache.shardingsphere.single.metadata.nodepath.SingleRuleNodePathProvider;
import org.apache.shardingsphere.single.rule.SingleRule;
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessor.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessor.java
index 37399b51fb413..f8fd7ddcc1b6e 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessor.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessor.java
@@ -19,9 +19,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.apache.shardingsphere.single.metadata.nodepath.SingleRuleNodePathProvider;
import org.apache.shardingsphere.single.rule.SingleRule;
diff --git a/kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor b/kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
similarity index 100%
rename from kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor
rename to kernel/single/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessorTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessorTest.java
index c8f009d85f42f..e65b64c351ace 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessorTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/DefaultDataSourceChangedProcessorTest.java
@@ -20,9 +20,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.Test;
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessorTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessorTest.java
index 0218fb7a2bef4..8cfeea71bac05 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessorTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/changed/SingleTableChangedProcessorTest.java
@@ -20,9 +20,9 @@
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.apache.shardingsphere.single.rule.SingleRule;
import org.junit.jupiter.api.Test;
diff --git a/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/PersistRepository.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
similarity index 97%
rename from mode/api/src/main/java/org/apache/shardingsphere/mode/spi/PersistRepository.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
index 2f6e654012196..88857f6600acb 100644
--- a/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/PersistRepository.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/repository/PersistRepository.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.spi;
+package org.apache.shardingsphere.mode.spi.repository;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/RuleItemConfigurationChangedProcessor.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/RuleItemConfigurationChangedProcessor.java
similarity index 93%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/RuleItemConfigurationChangedProcessor.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/RuleItemConfigurationChangedProcessor.java
index cd23d5974d8cb..6f2e7d52726cb 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/RuleItemConfigurationChangedProcessor.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/RuleItemConfigurationChangedProcessor.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi;
+package org.apache.shardingsphere.mode.spi.rule;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
/**
* Rule item configuration changed processor.
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/RuleChangedItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/RuleChangedItem.java
similarity index 94%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/RuleChangedItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/RuleChangedItem.java
index b977420f9b6ad..8702c30814c7f 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/RuleChangedItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/RuleChangedItem.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item;
+package org.apache.shardingsphere.mode.spi.rule.item;
/**
* Rule changed item.
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterNamedRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterNamedRuleItem.java
similarity index 95%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterNamedRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterNamedRuleItem.java
index 77987dfb59973..0b796fbb7dd13 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterNamedRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterNamedRuleItem.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.alter;
+package org.apache.shardingsphere.mode.spi.rule.item.alter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterRuleItem.java
similarity index 90%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterRuleItem.java
index 672682d91609f..a8667df83c6b3 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterRuleItem.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.alter;
+package org.apache.shardingsphere.mode.spi.rule.item.alter;
-import org.apache.shardingsphere.mode.node.spi.item.RuleChangedItem;
+import org.apache.shardingsphere.mode.spi.rule.item.RuleChangedItem;
/**
* Alter rule item.
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterUniqueRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterUniqueRuleItem.java
similarity index 95%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterUniqueRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterUniqueRuleItem.java
index 1aafadfee5b1b..db076981cef25 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/alter/AlterUniqueRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/alter/AlterUniqueRuleItem.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.alter;
+package org.apache.shardingsphere.mode.spi.rule.item.alter;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropNamedRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropNamedRuleItem.java
similarity index 94%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropNamedRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropNamedRuleItem.java
index e344e061515c7..2783bec3e2c97 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropNamedRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropNamedRuleItem.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.drop;
+package org.apache.shardingsphere.mode.spi.rule.item.drop;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropRuleItem.java
similarity index 89%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropRuleItem.java
index a19e6f7cb2f03..6961c36c33634 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropRuleItem.java
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.drop;
+package org.apache.shardingsphere.mode.spi.rule.item.drop;
-import org.apache.shardingsphere.mode.node.spi.item.RuleChangedItem;
+import org.apache.shardingsphere.mode.spi.rule.item.RuleChangedItem;
/**
* Drop rule item.
diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropUniqueRuleItem.java b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropUniqueRuleItem.java
similarity index 94%
rename from mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropUniqueRuleItem.java
rename to mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropUniqueRuleItem.java
index 5378eebbb7f6e..f52583ee2b807 100644
--- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/spi/item/drop/DropUniqueRuleItem.java
+++ b/mode/api/src/main/java/org/apache/shardingsphere/mode/spi/rule/item/drop/DropUniqueRuleItem.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.mode.node.spi.item.drop;
+package org.apache.shardingsphere.mode.spi.rule.item.drop;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
index e5f985cc006fa..8afdc8d2efcaf 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Deliver event subscriber factory.
diff --git a/mode/api/src/main/java/org/apache/shardingsphere/mode/event/DataChangedEvent.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/event/DataChangedEvent.java
similarity index 100%
rename from mode/api/src/main/java/org/apache/shardingsphere/mode/event/DataChangedEvent.java
rename to mode/core/src/main/java/org/apache/shardingsphere/mode/event/DataChangedEvent.java
diff --git a/mode/api/src/main/java/org/apache/shardingsphere/mode/exception/MetaDataPersistException.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/exception/MetaDataPersistException.java
similarity index 100%
rename from mode/api/src/main/java/org/apache/shardingsphere/mode/exception/MetaDataPersistException.java
rename to mode/core/src/main/java/org/apache/shardingsphere/mode/exception/MetaDataPersistException.java
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 8c4483c8f20ad..22cbe2a9500f4 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -38,7 +38,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.persist.PersistServiceFacade;
import org.apache.shardingsphere.mode.persist.coordinator.PersistCoordinatorFacade;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.state.ClusterStateContext;
import java.sql.SQLException;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
index 785a811f4383f..1440b2044bddb 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
@@ -37,7 +37,7 @@
import org.apache.shardingsphere.mode.metadata.manager.StorageUnitManager;
import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 3e0ab1a1a210f..303dea3fa063f 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -82,7 +82,7 @@ private static MetaDataContexts createByLocal(final MetaDataPersistService persi
ConfigurationProperties props = new ConfigurationProperties(param.getProps());
Map databases = ExternalMetaDataFactory.create(param.getDatabaseConfigs(), props, instanceContext);
MetaDataContexts result = newMetaDataContexts(persistService, param, globalRuleConfigs, databases, props);
- persistDatabaseConfigurations(result, param, persistService, instanceContext);
+ persistDatabaseConfigurations(result, param, persistService);
persistMetaData(result, persistService);
return result;
}
@@ -132,8 +132,7 @@ private static void closeGeneratedDataSources(final String databaseName, final M
}
}
- private static void persistDatabaseConfigurations(final MetaDataContexts metadataContexts,
- final ContextManagerBuilderParameter param, final MetaDataPersistService persistService, final ComputeNodeInstanceContext instanceContext) {
+ private static void persistDatabaseConfigurations(final MetaDataContexts metadataContexts, final ContextManagerBuilderParameter param, final MetaDataPersistService persistService) {
Collection globalRuleConfigs = metadataContexts.getMetaData().getGlobalRuleMetaData().getConfigurations();
persistService.persistGlobalRuleConfiguration(globalRuleConfigs, param.getProps());
for (Entry entry : param.getDatabaseConfigs().entrySet()) {
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
index c94a781741ce3..9f32b360e12f7 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/DatabaseRuleConfigurationManager.java
@@ -29,7 +29,7 @@
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/GlobalConfigurationManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/GlobalConfigurationManager.java
index 873cb3d81a8b7..9d5a1ffd334be 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/GlobalConfigurationManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/GlobalConfigurationManager.java
@@ -29,7 +29,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.node.tuple.annotation.RepositoryTupleEntity;
import org.apache.shardingsphere.transaction.rule.TransactionRule;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemChangedBuilder.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemChangedBuilder.java
index 2daf0cb2de5c4..5074d1fbb8767 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemChangedBuilder.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemChangedBuilder.java
@@ -23,11 +23,11 @@
import org.apache.shardingsphere.mode.node.path.rule.RuleNodePath;
import org.apache.shardingsphere.mode.node.path.rule.item.NamedRuleItemNodePath;
import org.apache.shardingsphere.mode.node.path.rule.item.UniqueRuleItemNodePath;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterUniqueRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropUniqueRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.RuleChangedItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.RuleChangedItem;
import org.apache.shardingsphere.mode.node.spi.RuleNodePathProvider;
import java.util.Map.Entry;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
index fc04f2bf6a4ae..4811f281365cd 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/RuleItemManager.java
@@ -22,10 +22,10 @@
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
-import org.apache.shardingsphere.mode.node.spi.RuleItemConfigurationChangedProcessor;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.mode.spi.rule.RuleItemConfigurationChangedProcessor;
import java.sql.SQLException;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
index 7665604cc6c0c..13f349d9df08f 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManager.java
@@ -32,7 +32,7 @@
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collections;
import java.util.Optional;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
index f541e3b01a34b..9791b5e0a9336 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/StorageUnitManager.java
@@ -27,7 +27,7 @@
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
index f62b052cdbefc..bf8cf05737497 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistService.java
@@ -37,7 +37,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.config.global.PropertiesPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.DatabaseMetaDataPersistFacade;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import javax.sql.DataSource;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistService.java
index 6edba317413e9..2320abaf74734 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistService.java
@@ -27,7 +27,7 @@
import org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDataSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.ShardingSphereDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableRowDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistService.java
index 05bc28594ba02..a4c58e91114f6 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistService.java
@@ -19,7 +19,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTuple;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.Collections;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
index 0b239a872cc5a..9fe12a602173f 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistService.java
@@ -24,7 +24,7 @@
import org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.DataSourceMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.LinkedHashMap;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistService.java
index a0b6f0b4a1b9f..0cbd2dcfc0487 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistService.java
@@ -24,7 +24,7 @@
import org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.DataSourceMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.LinkedHashMap;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistService.java
index e59f93a9f5892..f936aed683ac6 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistService.java
@@ -25,7 +25,7 @@
import org.apache.shardingsphere.mode.node.path.metadata.DatabaseRuleMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.config.RepositoryTuplePersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTuple;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTupleSwapperEngine;
import org.apache.shardingsphere.mode.node.tuple.annotation.RepositoryTupleEntity;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistService.java
index 763053aa45803..f03b7ed139045 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistService.java
@@ -25,7 +25,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.config.RepositoryTuplePersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
import org.apache.shardingsphere.mode.node.path.GlobalRuleNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTuple;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTupleSwapperEngine;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistService.java
index c0c0d5c093c16..df31ebef30e74 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistService.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import org.apache.shardingsphere.mode.node.path.GlobalPropertiesNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collections;
import java.util.List;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/DatabaseMetaDataPersistFacade.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/DatabaseMetaDataPersistFacade.java
index 077865a94b033..66ee746f8319e 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/DatabaseMetaDataPersistFacade.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/DatabaseMetaDataPersistFacade.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.ViewMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Database meta data persist facade.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistService.java
index 0f4faddce93b8..91db33831a681 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistService.java
@@ -19,7 +19,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mode.node.path.metadata.DatabaseMetaDataNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
index 730b4b8ac9e6c..3da1cb1659a19 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistService.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.ViewMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.Collections;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistService.java
index c52ffa0fe18e7..eddb9822276db 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistService.java
@@ -26,7 +26,7 @@
import org.apache.shardingsphere.infra.yaml.schema.swapper.YamlTableSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.TableMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistService.java
index 91656c667f386..c0414687710b7 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistService.java
@@ -25,7 +25,7 @@
import org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
import org.apache.shardingsphere.infra.yaml.data.swapper.YamlShardingSphereRowDataSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.ShardingSphereDataNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistService.java
index 34b0f5662f2c2..eea4b3d2a8731 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistService.java
@@ -26,7 +26,7 @@
import org.apache.shardingsphere.infra.yaml.schema.swapper.YamlViewSwapper;
import org.apache.shardingsphere.mode.node.path.metadata.ViewMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistService.java
index 4d67dd245ca3d..2f4e6b8441358 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistService.java
@@ -21,7 +21,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.mode.node.path.metadata.DatabaseMetaDataNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.List;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
index 28e726ef39008..3fe37ae5e9c12 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/PersistServiceFacade.java
@@ -30,7 +30,7 @@
import org.apache.shardingsphere.mode.persist.service.unified.ListenerAssistedPersistService;
import org.apache.shardingsphere.mode.persist.service.unified.QualifiedDataSourceStatePersistService;
import org.apache.shardingsphere.mode.persist.service.unified.StatePersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Persist service facade.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacade.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacade.java
index 28f1a4e72de96..63800fd3eedeb 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacade.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacade.java
@@ -20,7 +20,7 @@
import lombok.Getter;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Persist coordinator facade.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacadeBuilder.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacadeBuilder.java
index be24d682a3b91..9bb404e9c2e89 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacadeBuilder.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/coordinator/PersistCoordinatorFacadeBuilder.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Persist coordinator facade builder.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/divided/PersistServiceBuilder.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/divided/PersistServiceBuilder.java
index f9b6163b83f1a..fa67858754b66 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/divided/PersistServiceBuilder.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/divided/PersistServiceBuilder.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPI;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Persist service builder.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
index 52a1b8dbea2fa..9fb55aa19ba59 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
@@ -30,7 +30,7 @@
import org.apache.shardingsphere.infra.state.instance.InstanceState;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
import org.apache.shardingsphere.mode.node.path.metadata.ComputeNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Arrays;
import java.util.Collection;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistService.java
index 1beab5cbbece3..9a546fae2dbde 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistService.java
@@ -19,7 +19,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mode.node.path.metadata.StatesNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Listener assisted persist service.
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistService.java
index e85b64c1aa5d4..d03eece67159a 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistService.java
@@ -22,7 +22,7 @@
import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDataSource;
import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.infra.state.datasource.qualified.QualifiedDataSourceState;
import org.apache.shardingsphere.mode.node.path.metadata.QualifiedDataSourceNodePath;
import org.apache.shardingsphere.infra.state.datasource.qualified.yaml.YamlQualifiedDataSourceState;
diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistService.java
index e354f6234c29e..c6c6d379f9348 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistService.java
@@ -21,7 +21,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.shardingsphere.mode.state.ClusterState;
import org.apache.shardingsphere.mode.node.path.metadata.StatesNodePath;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* State persist service.
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistCoordinatorFacadeBuilderFixture.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistCoordinatorFacadeBuilderFixture.java
index 8c780c2be3ef8..d2a167a4dd6fb 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistCoordinatorFacadeBuilderFixture.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistCoordinatorFacadeBuilderFixture.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.mode.persist.coordinator.PersistCoordinatorFacadeBuilder;
import org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
public final class PersistCoordinatorFacadeBuilderFixture implements PersistCoordinatorFacadeBuilder {
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
index 7a16780753cdb..e12d907a8c7ca 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/fixture/PersistServiceBuilderFixture.java
@@ -21,7 +21,7 @@
import org.apache.shardingsphere.mode.persist.service.divided.MetaDataManagerPersistService;
import org.apache.shardingsphere.mode.persist.service.divided.PersistServiceBuilder;
import org.apache.shardingsphere.mode.persist.service.divided.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
public final class PersistServiceBuilderFixture implements PersistServiceBuilder {
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 039f29bf1feaf..f812b2705f7a8 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -39,7 +39,7 @@
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.node.path.metadata.DatabaseMetaDataNodePath;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
index e505af62edf89..1a2fc546f6abf 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
@@ -26,7 +26,7 @@
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
index 5c48561c7e287..9bae9485d22ee 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/MetaDataPersistServiceTest.java
@@ -34,7 +34,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.config.global.PropertiesPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.DatabaseMetaDataPersistFacade;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistServiceTest.java
index b1433f9ffe97b..d7d0e443794b1 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/data/ShardingSphereDataPersistServiceTest.java
@@ -24,7 +24,7 @@
import org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
import org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableRowDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistServiceTest.java
index 5c656a8ac938f..92b49ce7ac567 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/RepositoryTuplePersistServiceTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mode.metadata.persist.service.config;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.node.tuple.RepositoryTuple;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
index 8c479bf6871af..cac42490947b6 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceNodePersistServiceTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.metadata.persist.service.config.database;
import org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistServiceTest.java
index 3da14d002f826..e4af2b7830b57 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DataSourceUnitPersistServiceTest.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistServiceTest.java
index 7e67c5b553e7d..5b7d9753d463c 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/database/DatabaseRulePersistServiceTest.java
@@ -21,7 +21,7 @@
import org.apache.shardingsphere.mode.metadata.persist.fixture.NoTupleRuleConfigurationFixture;
import org.apache.shardingsphere.mode.metadata.persist.fixture.MetaDataRuleConfigurationFixture;
import org.apache.shardingsphere.mode.metadata.persist.service.config.RepositoryTuplePersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistServiceTest.java
index 144595fb8d45c..52be39d8b6e01 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/GlobalRulePersistServiceTest.java
@@ -24,7 +24,7 @@
import org.apache.shardingsphere.mode.metadata.persist.fixture.MetaDataYamlRuleConfigurationFixture;
import org.apache.shardingsphere.mode.metadata.persist.service.config.RepositoryTuplePersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistServiceTest.java
index 8598517ed46a8..46623e31e89b8 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/config/global/PropertiesPersistServiceTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.metadata.persist.service.config.global;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.jupiter.api.BeforeEach;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistServiceTest.java
index 4d2b1efc420c0..3b58e1ac5cc57 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/database/DatabaseMetaDataPersistServiceTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mode.metadata.persist.service.metadata.database;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
index 2b1c8b52e51ea..5c7af4ef6e780 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/schema/SchemaMetaDataPersistServiceTest.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.ViewMetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistServiceTest.java
index 38a52cbc3e676..2803a3b9a0096 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableMetaDataPersistServiceTest.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistServiceTest.java
index 30d5a3a49b266..0cfc44e7d8c4b 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/TableRowDataPersistServiceTest.java
@@ -20,7 +20,7 @@
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
import org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableData;
import org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistServiceTest.java
index ae6de0debc8e9..0942c5f210f05 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/metadata/table/ViewMetaDataPersistServiceTest.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
import org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
index 1a48dc238906b..41ca79771287c 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/version/MetaDataVersionPersistServiceTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.metadata.persist.service.version;
import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistServiceTest.java
index ce9a5fe734520..35d8e486bc161 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistServiceTest.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData;
import org.apache.shardingsphere.infra.state.instance.InstanceState;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistServiceTest.java
index 548b0567fb744..a3ab2483e55e8 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/ListenerAssistedPersistServiceTest.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mode.persist.service.unified;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Answers;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistServiceTest.java
index 9bfae67bf0cbd..43e1a3d5d07ff 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/QualifiedDataSourceStatePersistServiceTest.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import org.apache.shardingsphere.infra.state.datasource.qualified.QualifiedDataSourceState;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistServiceTest.java b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistServiceTest.java
index cfc33ad4a3cf7..8e4a623be087a 100644
--- a/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistServiceTest.java
+++ b/mode/core/src/test/java/org/apache/shardingsphere/mode/persist/service/unified/StatePersistServiceTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.persist.service.unified;
import org.apache.shardingsphere.mode.state.ClusterState;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index 2cbf4870eeb2b..2e997abe9d28a 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -41,7 +41,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.sql.SQLException;
import java.util.Collection;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/NamedRuleItemChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/NamedRuleItemChangedHandler.java
index ec19a9750def3..111f762dfc9e9 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/NamedRuleItemChangedHandler.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/NamedRuleItemChangedHandler.java
@@ -22,8 +22,8 @@
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.node.path.rule.RuleNodePath;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
import java.sql.SQLException;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/UniqueRuleItemChangedHandler.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/UniqueRuleItemChangedHandler.java
index 5971ea8f83643..2f34569aae242 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/UniqueRuleItemChangedHandler.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/UniqueRuleItemChangedHandler.java
@@ -22,8 +22,8 @@
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.node.path.rule.RuleNodePath;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterUniqueRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropUniqueRuleItem;
import java.sql.SQLException;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
index 75a1ab762f875..3d58e5fc1208f 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilder.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.mode.persist.service.divided.MetaDataManagerPersistService;
import org.apache.shardingsphere.mode.persist.service.divided.PersistServiceBuilder;
import org.apache.shardingsphere.mode.persist.service.divided.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Cluster persist service builder.
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterPersistCoordinatorFacadeBuilder.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterPersistCoordinatorFacadeBuilder.java
index 6d16b0316e646..617bae94bde9b 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterPersistCoordinatorFacadeBuilder.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterPersistCoordinatorFacadeBuilder.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.mode.persist.coordinator.PersistCoordinatorFacadeBuilder;
import org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Cluster persist coordinator facade builder.
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
index ef28d92c006ee..4d7f46366c9e1 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
@@ -25,7 +25,7 @@
import org.apache.shardingsphere.mode.node.path.metadata.ComputeNodePath;
import org.apache.shardingsphere.mode.node.path.metadata.ProcessNodePath;
import org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index 54c2814639dc3..c4bfe5da6116f 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -37,7 +37,7 @@
import org.apache.shardingsphere.mode.persist.service.unified.ListenerAssistedType;
import org.apache.shardingsphere.mode.persist.service.unified.ListenerAssistedPersistService;
import org.apache.shardingsphere.mode.persist.service.divided.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import javax.sql.DataSource;
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
index 34c7268a02a0e..307358926df01 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
@@ -27,7 +27,7 @@
import org.apache.shardingsphere.mode.node.path.metadata.ComputeNodePath;
import org.apache.shardingsphere.mode.node.path.metadata.ProcessNodePath;
import org.apache.shardingsphere.mode.persist.service.divided.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import java.util.Collection;
import java.util.UUID;
diff --git a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java
index effd94ca50769..eb0237144cd39 100644
--- a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java
+++ b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/rule/RuleConfigurationChangedHandlerTest.java
@@ -23,10 +23,10 @@
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.node.path.rule.RuleNodePath;
import org.apache.shardingsphere.mode.node.spi.RuleNodePathProvider;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterUniqueRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropNamedRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterUniqueRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropNamedRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropUniqueRuleItem;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
diff --git a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
index 1268709a219ac..043e7939f35e9 100644
--- a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
+++ b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/builder/ClusterPersistServiceBuilderTest.java
@@ -22,7 +22,7 @@
import org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterProcessPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.persist.service.divided.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
diff --git a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinatorTest.java b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinatorTest.java
index 4ad1ddd68236c..407b4066750fd 100644
--- a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinatorTest.java
+++ b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinatorTest.java
@@ -20,7 +20,7 @@
import org.apache.shardingsphere.infra.executor.sql.process.Process;
import org.apache.shardingsphere.infra.executor.sql.process.ProcessRegistry;
import org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.BeforeEach;
diff --git a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
index ebeb55417f861..869eb509b052c 100644
--- a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
+++ b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistServiceTest.java
@@ -27,7 +27,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.persist.service.unified.ListenerAssistedType;
import org.apache.shardingsphere.mode.persist.service.unified.ListenerAssistedPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
index 75b31deab262a..ca53b64ca63cb 100644
--- a/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
+++ b/mode/type/cluster/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/cluster/ClusterPersistRepository.java
@@ -20,7 +20,7 @@
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEventListener;
import org.apache.shardingsphere.mode.repository.cluster.lock.holder.DistributedLockHolder;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Cluster persist repository.
diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
index 13885f574606e..9c75745b2cfce 100644
--- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
+++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilder.java
@@ -23,7 +23,7 @@
import org.apache.shardingsphere.mode.persist.service.divided.MetaDataManagerPersistService;
import org.apache.shardingsphere.mode.persist.service.divided.PersistServiceBuilder;
import org.apache.shardingsphere.mode.persist.service.divided.ProcessPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Standalone meta data manager persist service builder.
diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/coordinator/StandalonePersistCoordinatorFacadeBuilder.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/coordinator/StandalonePersistCoordinatorFacadeBuilder.java
index e3d0a81c8dc9b..61b47ddc5ef87 100644
--- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/coordinator/StandalonePersistCoordinatorFacadeBuilder.java
+++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/coordinator/StandalonePersistCoordinatorFacadeBuilder.java
@@ -19,7 +19,7 @@
import org.apache.shardingsphere.mode.persist.coordinator.PersistCoordinatorFacadeBuilder;
import org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Standalone persist coordinator facade builder.
diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index f9ba3b9cb2b9b..56482b172c673 100644
--- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -42,10 +42,10 @@
import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
import org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
import org.apache.shardingsphere.mode.persist.service.divided.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
-import org.apache.shardingsphere.mode.node.spi.item.RuleChangedItem;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.mode.spi.rule.item.RuleChangedItem;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import java.sql.SQLException;
diff --git a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
index 461b733eb8ffe..eff9b960e52a5 100644
--- a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
+++ b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/builder/StandalonePersistServiceBuilderTest.java
@@ -22,7 +22,7 @@
import org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneProcessPersistService;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.persist.service.divided.PersistServiceBuilder;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
diff --git a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
index bdaedf4e38f73..22c95c643e3f4 100644
--- a/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
+++ b/mode/type/standalone/core/src/test/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistServiceTest.java
@@ -32,9 +32,9 @@
import org.apache.shardingsphere.mode.metadata.persist.service.metadata.DatabaseMetaDataPersistFacade;
import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
import org.apache.shardingsphere.mode.metadata.manager.RuleItemChangedBuilder;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
-import org.apache.shardingsphere.mode.node.spi.item.alter.AlterRuleItem;
-import org.apache.shardingsphere.mode.node.spi.item.drop.DropRuleItem;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
+import org.apache.shardingsphere.mode.spi.rule.item.alter.AlterRuleItem;
+import org.apache.shardingsphere.mode.spi.rule.item.drop.DropRuleItem;
import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --git a/mode/type/standalone/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/standalone/StandalonePersistRepository.java b/mode/type/standalone/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/standalone/StandalonePersistRepository.java
index 984f7c3f104b4..6c2906dcbb063 100644
--- a/mode/type/standalone/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/standalone/StandalonePersistRepository.java
+++ b/mode/type/standalone/repository/api/src/main/java/org/apache/shardingsphere/mode/repository/standalone/StandalonePersistRepository.java
@@ -17,7 +17,7 @@
package org.apache.shardingsphere.mode.repository.standalone;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
/**
* Standalone persist repository.
diff --git a/pom.xml b/pom.xml
index 8851b93a3b2be..47dfbde8720d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,7 @@
1.6.0
3.3.6
0.288.1
+ 5.0.6.java8
4.0.3
@@ -489,6 +490,12 @@
${presto.version}
test
+
+ org.firebirdsql.jdbc
+ jaybird
+ ${jaybird.version}
+ test
+
com.zaxxer
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
index 4dbf078dcbfc4..069953bd5d81e 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
@@ -32,7 +32,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ConnectionPostProcessor;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.datasource.JDBCBackendDataSource;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index f7f00e06d63e7..b2fbf98bf0e70 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -44,7 +44,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.table.SimpleTableSegment;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 9e91b612b6399..57f773f332949 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -29,7 +29,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.mode.state.ClusterState;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
index 4748d1153b206..36dd74cdfe963 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLQueryBackendHandlerTest.java
@@ -37,7 +37,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.statement.core.segment.generic.DatabaseSegment;
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
index d6cda5468c647..91e0118438409 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/arguments/BootstrapArguments.java
@@ -70,6 +70,17 @@ public String getConfigurationPath() {
return args.length < 2 ? DEFAULT_CONFIG_PATH : paddingWithSlash(args[1]);
}
+ private String paddingWithSlash(final String pathArg) {
+ StringBuilder result = new StringBuilder(pathArg);
+ if (!pathArg.startsWith("/")) {
+ result.insert(0, '/');
+ }
+ if (!pathArg.endsWith("/")) {
+ result.append('/');
+ }
+ return result.toString();
+ }
+
/**
* Get bind address list.
*
@@ -79,8 +90,7 @@ public List getAddresses() {
if (args.length < 3) {
return Collections.singletonList(DEFAULT_BIND_ADDRESS);
}
- List addresses = Arrays.asList(args[2].split(","));
- return addresses.stream().filter(InetAddresses::isInetAddress).collect(Collectors.toList());
+ return Arrays.stream(args[2].split(",")).filter(InetAddresses::isInetAddress).collect(Collectors.toList());
}
/**
@@ -96,21 +106,6 @@ public Optional getSocketPath() {
return addresses.stream().filter(address -> !InetAddresses.isInetAddress(address)).filter(this::isValidPath).findFirst();
}
- private boolean parseForceParameter(final String forceParam) {
- return Boolean.TRUE.toString().equalsIgnoreCase(forceParam.trim());
- }
-
- private String paddingWithSlash(final String pathArg) {
- StringBuilder result = new StringBuilder(pathArg);
- if (!pathArg.startsWith("/")) {
- result.insert(0, '/');
- }
- if (!pathArg.endsWith("/")) {
- result.append('/');
- }
- return result.toString();
- }
-
private boolean isValidPath(final String path) {
try {
Paths.get(path);
diff --git a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index 0e48ba9e1d602..3a86b91f0b92d 100644
--- a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -30,7 +30,7 @@
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.metadata.persist.data.ShardingSphereDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
diff --git a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
index f94c78d372504..446587121374c 100644
--- a/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
+++ b/proxy/frontend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngineTest.java
@@ -29,7 +29,7 @@
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.ShardingSphereStatisticsFactory;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager;
import org.apache.shardingsphere.proxy.backend.connector.jdbc.connection.ConnectionResourceLock;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/cases/E2ETestCasesLoader.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/cases/E2ETestCasesLoader.java
index 15b66cfe26c31..c4d842c8df3c4 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/cases/E2ETestCasesLoader.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/cases/E2ETestCasesLoader.java
@@ -104,7 +104,11 @@ public FileVisitResult visitFile(final Path file, final BasicFileAttributes basi
}
private Collection getE2ETestCaseContexts(final File file) throws IOException, JAXBException {
- return unmarshal(file.getPath()).getTestCases().stream().map(each -> new E2ETestCaseContext(each, file.getParent())).collect(Collectors.toList());
+ return unmarshal(file.getPath()).getTestCases().stream().map(each -> new E2ETestCaseContext(each, getParentPath(file))).collect(Collectors.toList());
+ }
+
+ private String getParentPath(final File file) {
+ return file.getParent().replaceAll("(/cases/.+)/cases/.+", "$1");
}
private E2ETestCases unmarshal(final String e2eCasesFile) throws IOException, JAXBException {
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-aggregate-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-aggregate-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..d24fcba994468
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-aggregate-for-db-tbl-sql-federation.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-combine-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-combine-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..94ad6a888dbd4
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-combine-for-db-tbl-sql-federation.xml
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-expression-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-expression-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..559d9fc014d63
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-expression-for-db-tbl-sql-federation.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..1ada2071150a9
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-for-db-tbl-sql-federation.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-join-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-join-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..5399854be1817
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-join-for-db-tbl-sql-federation.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-order-by-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-order-by-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..720dae54e327d
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-order-by-for-db-tbl-sql-federation.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..e507fa9c62cef
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-for-db-tbl-sql-federation.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination-group-by-order-by.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-group-by-order-by-for-db-tbl-sql-federation.xml
similarity index 98%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination-group-by-order-by.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-group-by-order-by-for-db-tbl-sql-federation.xml
index c16d321be51a8..69884882650dc 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination-group-by-order-by.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-pagination-group-by-order-by-for-db-tbl-sql-federation.xml
@@ -81,8 +81,7 @@
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-sub-query-for-db-tbl-sql-federation.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-sub-query-for-db-tbl-sql-federation.xml
new file mode 100644
index 0000000000000..53c7702439c93
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/db_tbl_sql_federation/e2e-dql-select-sub-query-for-db-tbl-sql-federation.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-information-schema.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-information-schema.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-information-schema.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-information-schema.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-mysql.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-mysql.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-mysql.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-mysql.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-performance-schema.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-performance-schema.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-performance-schema.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-performance-schema.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-sys.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-sys.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-mysql-sys.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/mysql/e2e-dql-simple-select-mysql-sys.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-opengauss-information-schema.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/opengauss/e2e-dql-simple-select-opengauss-information-schema.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-opengauss-information-schema.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/opengauss/e2e-dql-simple-select-opengauss-information-schema.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-opengauss-pg-catalog.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/opengauss/e2e-dql-simple-select-opengauss-pg-catalog.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-opengauss-pg-catalog.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/opengauss/e2e-dql-simple-select-opengauss-pg-catalog.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-postgresql-information-schema.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/postgresql/e2e-dql-simple-select-postgresql-information-schema.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-postgresql-information-schema.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/postgresql/e2e-dql-simple-select-postgresql-information-schema.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-postgresql-pg-catalog.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/postgresql/e2e-dql-simple-select-postgresql-pg-catalog.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-simple-select-postgresql-pg-catalog.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/empty_storage_units/postgresql/e2e-dql-simple-select-postgresql-pg-catalog.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-for-passthrough.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-for-passthrough.xml
new file mode 100644
index 0000000000000..29abf4ddd0250
--- /dev/null
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-for-passthrough.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-special-function.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-special-function-for-passthrough.xml
similarity index 83%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-special-function.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-special-function-for-passthrough.xml
index 39694c7797878..7acd0496ceb6b 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-special-function.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-special-function-for-passthrough.xml
@@ -17,11 +17,6 @@
-->
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-with-data-types.xml b/test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-with-data-types-for-passthrough.xml
similarity index 100%
rename from test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-with-data-types.xml
rename to test/e2e/sql/src/test/resources/cases/dql/cases/passthrough/e2e-dql-select-with-data-types-for-passthrough.xml
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-aggregate.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-aggregate.xml
index 643f8d69e48d6..3369ddb12375e 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-aggregate.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-aggregate.xml
@@ -121,22 +121,6 @@
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -145,7 +129,7 @@
-
+
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-combine.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-combine.xml
index d23aaad7f5b43..742a895464b8d 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-combine.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-combine.xml
@@ -32,43 +32,6 @@
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -77,14 +40,6 @@
-
-
-
-
-
-
-
-
@@ -93,14 +48,6 @@
-
-
-
-
-
-
-
-
@@ -109,14 +56,6 @@
-
-
-
-
-
-
-
-
@@ -125,14 +64,6 @@
-
-
-
-
-
-
-
-
@@ -146,31 +77,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -231,14 +112,4 @@
-
-
-
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-expression.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-expression.xml
index 063bde2ed389f..32cf1b6ea50ae 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-expression.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-expression.xml
@@ -72,7 +72,7 @@
-
+
@@ -106,11 +106,6 @@
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-join.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-join.xml
index 952981fc24da8..8e30a1bc22d3e 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-join.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-join.xml
@@ -33,7 +33,7 @@
-
+
@@ -98,18 +98,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -120,10 +108,6 @@
-->
-
-
-
-
@@ -145,145 +129,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-order-by.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-order-by.xml
index 3892efd2c0d07..f154f887205a4 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-order-by.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-order-by.xml
@@ -56,18 +56,10 @@
-
-
-
-
-
-
-
-
@@ -130,15 +122,6 @@
-->
-
-
-
@@ -196,14 +179,6 @@
-
-
-
-
-
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination.xml
index b79d07199edcf..395c3e949a5d9 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select-pagination.xml
@@ -17,25 +17,6 @@
-->
-
-
-
-
-
-
-
@@ -50,18 +46,10 @@
-->
-
-
-
-
-
-
-
-
diff --git a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select.xml b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select.xml
index 03b584b8302c0..e25146bbf08cb 100644
--- a/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select.xml
+++ b/test/e2e/sql/src/test/resources/cases/dql/e2e-dql-select.xml
@@ -17,29 +17,13 @@
-->
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -180,27 +164,6 @@
-
-
-
@@ -216,191 +179,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrierTest.java b/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrierTest.java
index 1d01f755df890..e70af7f4bc285 100644
--- a/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrierTest.java
+++ b/test/it/pipeline/src/test/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrierTest.java
@@ -20,7 +20,7 @@
import org.apache.shardingsphere.data.pipeline.core.context.PipelineContextKey;
import org.apache.shardingsphere.data.pipeline.core.context.PipelineContextManager;
import org.apache.shardingsphere.data.pipeline.core.metadata.node.PipelineMetaDataNode;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.spi.repository.PersistRepository;
import org.apache.shardingsphere.test.it.data.pipeline.core.util.JobConfigurationBuilder;
import org.apache.shardingsphere.test.it.data.pipeline.core.util.PipelineContextUtils;
import org.junit.jupiter.api.BeforeAll;