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

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


The following commit(s) were added to refs/heads/master by this push:
     new e0885092ed9 Refactor 
GlobalDataChangedEventHandler.getSubscribedNodePath() (#34919)
e0885092ed9 is described below

commit e0885092ed9c8978e51049d71ee5334ba64c13b6
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Mar 7 16:54:53 2025 +0800

    Refactor GlobalDataChangedEventHandler.getSubscribedNodePath() (#34919)
    
    * Refactor DatabaseMetaDataChangedListener
    
    * Refactor GlobalDataChangedEventHandler.getSubscribedNodePath()
---
 .../handler/database/statistics/StatisticsChangedHandler.java      | 6 +++---
 .../dispatch/handler/global/GlobalDataChangedEventHandler.java     | 7 ++++---
 .../dispatch/handler/global/config/GlobalRuleChangedHandler.java   | 6 +++---
 .../dispatch/handler/global/config/PropertiesChangedHandler.java   | 6 +++---
 .../handler/global/node/ComputeNodeLabelChangedHandler.java        | 6 +++---
 .../dispatch/handler/global/node/ComputeNodeOnlineHandler.java     | 6 +++---
 .../handler/global/node/ComputeNodeStateChangedHandler.java        | 6 +++---
 .../handler/global/node/ComputeNodeWorkerIdChangedHandler.java     | 6 +++---
 .../cluster/dispatch/handler/global/node/KillProcessHandler.java   | 6 +++---
 .../handler/global/node/QualifiedDataSourceChangedHandler.java     | 6 +++---
 .../dispatch/handler/global/node/ShowProcessListHandler.java       | 6 +++---
 .../dispatch/handler/global/state/ClusterStateChangedHandler.java  | 6 +++---
 .../handler/global/state/DatabaseListenerChangedHandler.java       | 5 +++--
 .../dispatch/listener/DataChangedEventListenerRegistry.java        | 2 +-
 .../dispatch/listener/type/DatabaseMetaDataChangedListener.java    | 2 +-
 .../handler/global/config/GlobalRuleChangedHandlerTest.java        | 3 ++-
 .../handler/global/config/PropertiesChangedHandlerTest.java        | 3 ++-
 .../handler/global/node/ComputeNodeLabelChangedHandlerTest.java    | 3 ++-
 .../dispatch/handler/global/node/ComputeNodeOnlineHandlerTest.java | 3 ++-
 .../handler/global/node/ComputeNodeStateChangedHandlerTest.java    | 3 ++-
 .../handler/global/node/ComputeNodeWorkerIdChangedHandlerTest.java | 3 ++-
 .../dispatch/handler/global/node/KillProcessHandlerTest.java       | 3 ++-
 .../handler/global/node/QualifiedDataSourceChangedHandlerTest.java | 3 ++-
 .../dispatch/handler/global/node/ShowProcessListHandlerTest.java   | 3 ++-
 .../dispatch/handler/global/node/StatisticsChangedHandlerTest.java | 3 ++-
 .../handler/global/state/ClusterStateChangedHandlerTest.java       | 3 ++-
 .../handler/global/state/DatabaseListenerChangedHandlerTest.java   | 3 ++-
 27 files changed, 66 insertions(+), 52 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/statistics/StatisticsChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/statistics/StatisticsChangedHandler.java
index b25cfc20d5f..50c4fda3d57 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/statistics/StatisticsChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/database/statistics/StatisticsChangedHandler.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import 
org.apache.shardingsphere.mode.metadata.manager.statistics.StatisticsManager;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDataNodePath;
 
@@ -39,8 +39,8 @@ import java.util.Optional;
 public final class StatisticsChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new StatisticsDataNodePath(null, null, 
null, null), false);
+    public NodePath getSubscribedNodePath() {
+        return new StatisticsDataNodePath(null, null, null, null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalDataChangedEventHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalDataChangedEventHandler.java
index 3076a5ccbed..319bd463568 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalDataChangedEventHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/GlobalDataChangedEventHandler.java
@@ -21,6 +21,7 @@ import 
org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 
 import java.util.Collection;
 
@@ -31,11 +32,11 @@ import java.util.Collection;
 public interface GlobalDataChangedEventHandler {
     
     /**
-     * Get subscribed key.
+     * Get subscribed node path.
      *
-     * @return subscribed key
+     * @return subscribed node path
      */
-    String getSubscribedKey();
+    NodePath getSubscribedNodePath();
     
     /**
      * Get subscribed types.
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandler.java
index 345dbacc366..575d3f6e683 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandler.java
@@ -23,7 +23,7 @@ import 
org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import org.apache.shardingsphere.mode.metadata.manager.ActiveVersionChecker;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathPattern;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.config.GlobalRuleNodePath;
@@ -38,8 +38,8 @@ import java.util.Collection;
 public final class GlobalRuleChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new GlobalRuleNodePath(null), false);
+    public NodePath getSubscribedNodePath() {
+        return new GlobalRuleNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandler.java
index b2df3d52d6e..a3333260e18 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandler.java
@@ -22,7 +22,7 @@ import 
org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import org.apache.shardingsphere.mode.metadata.manager.ActiveVersionChecker;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.global.config.GlobalPropertiesNodePath;
 import org.apache.shardingsphere.mode.node.path.version.VersionNodePath;
 
@@ -35,8 +35,8 @@ import java.util.Collection;
 public final class PropertiesChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new GlobalPropertiesNodePath(), false);
+    public NodePath getSubscribedNodePath() {
+        return new GlobalPropertiesNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandler.java
index ce02f581d00..698929704ef 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandler.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.label.LabelNodePath;
 
@@ -38,8 +38,8 @@ import java.util.Collection;
 public final class ComputeNodeLabelChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new LabelNodePath(null), false);
+    public NodePath getSubscribedNodePath() {
+        return new LabelNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
index 0c7edf432ce..24c816db0db 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandler.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath;
 
@@ -42,8 +42,8 @@ import java.util.Collection;
 public final class ComputeNodeOnlineHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new OnlineNodePath(null, null), false);
+    public NodePath getSubscribedNodePath() {
+        return new OnlineNodePath(null, null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandler.java
index 3e0448b818a..e14ec0b14d3 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandler.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.StatusNodePath;
 
@@ -35,8 +35,8 @@ import java.util.Collection;
 public final class ComputeNodeStateChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new StatusNodePath(null), false);
+    public NodePath getSubscribedNodePath() {
+        return new StatusNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandler.java
index c6e4e08dc58..af33848dac0 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandler.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.workerid.ComputeNodeWorkerIDNodePath;
 
@@ -36,8 +36,8 @@ import java.util.Collection;
 public final class ComputeNodeWorkerIdChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new ComputeNodeWorkerIDNodePath(null), 
false);
+    public NodePath getSubscribedNodePath() {
+        return new ComputeNodeWorkerIDNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandler.java
index 9e692ae0449..38179549965 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandler.java
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.process.ClusterProcessPersistCoordinator;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.process.KillProcessTriggerNodePath;
 
@@ -39,8 +39,8 @@ import java.util.Collection;
 public final class KillProcessHandler implements GlobalDataChangedEventHandler 
{
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new KillProcessTriggerNodePath(null), 
false);
+    public NodePath getSubscribedNodePath() {
+        return new KillProcessTriggerNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandler.java
index 625f2022e90..4c5ee254310 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandler.java
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.storage.QualifiedDataSourceNodePath;
 
@@ -44,8 +44,8 @@ import java.util.Optional;
 public final class QualifiedDataSourceChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new 
QualifiedDataSourceNodePath((String) null), false);
+    public NodePath getSubscribedNodePath() {
+        return new QualifiedDataSourceNodePath((String) null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandler.java
index 76458a16c72..39ecac4510b 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandler.java
@@ -23,7 +23,7 @@ import 
org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.process.ClusterProcessPersistCoordinator;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.global.node.compute.process.ShowProcessListTriggerNodePath;
 
@@ -36,8 +36,8 @@ import java.util.Collection;
 public final class ShowProcessListHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new 
ShowProcessListTriggerNodePath(null), false);
+    public NodePath getSubscribedNodePath() {
+        return new ShowProcessListTriggerNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandler.java
index d9762d2136c..2c45f18ef66 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandler.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
-import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.type.global.state.ClusterNodePath;
 import org.apache.shardingsphere.mode.state.cluster.ClusterState;
 
@@ -34,8 +34,8 @@ import java.util.Collection;
 public final class ClusterStateChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new ClusterNodePath(), false);
+    public NodePath getSubscribedNodePath() {
+        return new ClusterNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
index dc1ae55abae..1ae4dea9ba4 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandler.java
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.Dat
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerCoordinatorType;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.coordinator.database.ClusterDatabaseListenerPersistCoordinator;
 import 
org.apache.shardingsphere.mode.metadata.refresher.statistics.StatisticsRefreshEngine;
+import org.apache.shardingsphere.mode.node.path.NodePath;
 import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import 
org.apache.shardingsphere.mode.node.path.engine.searcher.NodePathSearcher;
 import 
org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetadataNodePath;
@@ -41,8 +42,8 @@ import java.util.Collection;
 public final class DatabaseListenerChangedHandler implements 
GlobalDataChangedEventHandler {
     
     @Override
-    public String getSubscribedKey() {
-        return NodePathGenerator.toPath(new 
DatabaseListenerCoordinatorNodePath(null), false);
+    public NodePath getSubscribedNodePath() {
+        return new DatabaseListenerCoordinatorNodePath(null);
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
index 3e4d1b71dd5..67391e7c37d 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/DataChangedEventListenerRegistry.java
@@ -58,6 +58,6 @@ public final class DataChangedEventListenerRegistry {
     }
     
     private void registerGlobalHandlers(final GlobalDataChangedEventHandler 
handler) {
-        repository.watch(handler.getSubscribedKey(), new 
GlobalMetaDataChangedListener(contextManager, handler));
+        
repository.watch(NodePathGenerator.toPath(handler.getSubscribedNodePath(), 
false), new GlobalMetaDataChangedListener(contextManager, handler));
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
index bec79cdb01d..add0d6f062b 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/listener/type/DatabaseMetaDataChangedListener.java
@@ -65,7 +65,7 @@ public final class DatabaseMetaDataChangedListener implements 
DataChangedEventLi
             if (each.isSubscribed(databaseName.get(), event.getKey())) {
                 try {
                     each.handle(databaseName.get(), event);
-                    break;
+                    return;
                 } catch (final SQLException ex) {
                     throw new SQLWrapperException(ex);
                 }
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandlerTest.java
index da345243330..cad137b6c49 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/GlobalRuleChangedHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,7 +48,7 @@ class GlobalRuleChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/rules")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/rules")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandlerTest.java
index 5864d5d76dd..925af21426e 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/config/PropertiesChangedHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,7 +48,7 @@ class PropertiesChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/props")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/props")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandlerTest.java
index b363d92c13d..76854008d56 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeLabelChangedHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -45,7 +46,7 @@ class ComputeNodeLabelChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/labels")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/labels")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandlerTest.java
index 63c471fa9c7..1888ea28628 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeOnlineHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,7 +48,7 @@ class ComputeNodeOnlineHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/online")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/online")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandlerTest.java
index 8bd3ae8371b..10eee13c2cd 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeStateChangedHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -43,7 +44,7 @@ class ComputeNodeStateChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/status")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/status")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandlerTest.java
index c716462b6fe..2c904bd45ec 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ComputeNodeWorkerIdChangedHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -43,7 +44,7 @@ class ComputeNodeWorkerIdChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/worker_id")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/worker_id")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandlerTest.java
index 4ce73e150bc..39c61f3e793 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/KillProcessHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
@@ -52,7 +53,7 @@ class KillProcessHandlerTest {
     void setUp() {
         
when(contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getId()).thenReturn("foo_instance_id");
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/kill_process_trigger")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/kill_process_trigger")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandlerTest.java
index 38b1e46c1f9..76528da82cb 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/QualifiedDataSourceChangedHandlerTest.java
@@ -25,6 +25,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -52,7 +53,7 @@ class QualifiedDataSourceChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/qualified_data_sources")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/qualified_data_sources")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandlerTest.java
index 5338b17b319..93237bcf5d6 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/ShowProcessListHandlerTest.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.apache.shardingsphere.test.mock.AutoMockExtension;
 import org.apache.shardingsphere.test.mock.StaticMockSettings;
 import org.junit.jupiter.api.BeforeEach;
@@ -55,7 +56,7 @@ class ShowProcessListHandlerTest {
     void setUp() {
         
when(contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getId()).thenReturn("foo_instance_id");
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/nodes/compute_nodes/show_process_list_trigger")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/nodes/compute_nodes/show_process_list_trigger")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/StatisticsChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/StatisticsChangedHandlerTest.java
index 8e9c4f64e44..1ff7eaa8aa5 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/StatisticsChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/node/StatisticsChangedHandlerTest.java
@@ -23,6 +23,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -47,7 +48,7 @@ class StatisticsChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/statistics/databases")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/statistics/databases")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandlerTest.java
index c195041148d..5f2c6660ae9 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/ClusterStateChangedHandlerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import org.apache.shardingsphere.mode.state.cluster.ClusterState;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -43,7 +44,7 @@ class ClusterStateChangedHandlerTest {
     @BeforeEach
     void setUp() {
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/states/cluster_state")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/states/cluster_state")).findFirst().orElse(null);
     }
     
     @Test
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandlerTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandlerTest.java
index 6a332ff3374..76de4088388 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandlerTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/state/DatabaseListenerChangedHandlerTest.java
@@ -24,6 +24,7 @@ import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler;
+import 
org.apache.shardingsphere.mode.node.path.engine.generator.NodePathGenerator;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -56,7 +57,7 @@ class DatabaseListenerChangedHandlerTest {
         
when(contextManager.getPersistServiceFacade().getRepository()).thenReturn(repository);
         
when(contextManager.getMetaDataContexts().getMetaData().getTemporaryProps()).thenReturn(new
 TemporaryConfigurationProperties(new Properties()));
         handler = 
ShardingSphereServiceLoader.getServiceInstances(GlobalDataChangedEventHandler.class).stream()
-                .filter(each -> 
each.getSubscribedKey().equals("/states/database_listener_coordinator")).findFirst().orElse(null);
+                .filter(each -> 
NodePathGenerator.toPath(each.getSubscribedNodePath(), 
false).equals("/states/database_listener_coordinator")).findFirst().orElse(null);
     }
     
     @Test


Reply via email to