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

zhaojinchao 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 31bbe98da9c Refactor DispatchEventBuilder.getSubscribedKey() (#32896)
31bbe98da9c is described below

commit 31bbe98da9c0d94b3c8c6af2ffb59299c886325e
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Sep 15 23:01:50 2024 +0800

    Refactor DispatchEventBuilder.getSubscribedKey() (#32896)
---
 .../event/builder/ClusterStateDispatchEventBuilder.java   |  5 ++---
 .../builder/ComputeNodeOnlineDispatchEventBuilder.java    |  7 +++----
 .../builder/ComputeNodeStateDispatchEventBuilder.java     |  7 +++----
 .../cluster/event/builder/DispatchEventBuilder.java       |  6 +++---
 .../event/builder/GlobalRuleDispatchEventBuilder.java     |  9 ++++-----
 .../builder/ListenerAssistedDispatchEventBuilder.java     |  5 ++---
 .../event/builder/PropertiesDispatchEventBuilder.java     |  7 +++----
 .../builder/QualifiedDataSourceDispatchEventBuilder.java  | 15 +++++++--------
 .../builder/ShardingSphereDataDispatchEventBuilder.java   |  9 ++++-----
 .../listener/DataChangedEventListenerRegistry.java        |  2 +-
 10 files changed, 32 insertions(+), 40 deletions(-)

diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilder.java
index 40d7acb1cb6..01c16543406 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ClusterStateDispatchEventBuilder.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.mode.event.dispatch.state.cluster.ClusterStateE
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -35,8 +34,8 @@ import java.util.Optional;
 public final class ClusterStateDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(ComputeNode.getClusterStateNodePath());
+    public String getSubscribedKey() {
+        return ComputeNode.getClusterStateNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
index 99a16eb02bd..ecbbf6759ff 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeOnlineDispatchEventBuilder.java
@@ -23,17 +23,16 @@ import 
org.apache.shardingsphere.infra.instance.metadata.InstanceMetaDataFactory
 import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
 import org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData;
 import 
org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeDataSwapper;
-import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
+import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.instance.InstanceOfflineEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.instance.InstanceOnlineEvent;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -44,8 +43,8 @@ import java.util.regex.Pattern;
 public final class ComputeNodeOnlineDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(ComputeNode.getOnlineInstanceNodePath());
+    public String getSubscribedKey() {
+        return ComputeNode.getOnlineInstanceNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeStateDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeStateDispatchEventBuilder.java
index 7c334108657..c8c96a3c6ef 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeStateDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ComputeNodeStateDispatchEventBuilder.java
@@ -18,11 +18,11 @@
 package org.apache.shardingsphere.mode.manager.cluster.event.builder;
 
 import com.google.common.base.Strings;
-import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
+import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.ComputeNodeInstanceStateChangedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.KillLocalProcessCompletedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.KillLocalProcessEvent;
@@ -34,7 +34,6 @@ import 
org.apache.shardingsphere.mode.event.dispatch.state.compute.WorkerIdEvent
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -45,8 +44,8 @@ import java.util.regex.Pattern;
 public final class ComputeNodeStateDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(ComputeNode.getComputeNodePath());
+    public String getSubscribedKey() {
+        return ComputeNode.getComputeNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/DispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/DispatchEventBuilder.java
index df68bb7b271..eee63e1ec56 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/DispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/DispatchEventBuilder.java
@@ -33,11 +33,11 @@ import java.util.Optional;
 public interface DispatchEventBuilder<T> {
     
     /**
-     * Get subscribed keys.
+     * Get subscribed key.
      *
-     * @return subscribed keys
+     * @return subscribed key
      */
-    Collection<String> getSubscribedKeys();
+    String getSubscribedKey();
     
     /**
      * Get subscribed types.
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/GlobalRuleDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/GlobalRuleDispatchEventBuilder.java
index e84677cbc04..4510eb833c4 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/GlobalRuleDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/GlobalRuleDispatchEventBuilder.java
@@ -17,16 +17,15 @@
 
 package org.apache.shardingsphere.mode.manager.cluster.event.builder;
 
-import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
-import org.apache.shardingsphere.mode.path.GlobalNodePath;
 import org.apache.shardingsphere.metadata.persist.node.GlobalNode;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
+import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.config.AlterGlobalRuleConfigurationEvent;
+import org.apache.shardingsphere.mode.path.GlobalNodePath;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -35,8 +34,8 @@ import java.util.Optional;
 public final class GlobalRuleDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(GlobalNode.getGlobalRuleRootNode());
+    public String getSubscribedKey() {
+        return GlobalNode.getGlobalRuleRootNode();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
index d65ad5d55e7..fa1e79ad9a1 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ListenerAssistedDispatchEventBuilder.java
@@ -28,7 +28,6 @@ import 
org.apache.shardingsphere.mode.persist.pojo.ListenerAssisted;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -37,8 +36,8 @@ import java.util.Optional;
 public final class ListenerAssistedDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return 
Collections.singleton(ListenerAssistedNodePath.getRootNodePath());
+    public String getSubscribedKey() {
+        return ListenerAssistedNodePath.getRootNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/PropertiesDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/PropertiesDispatchEventBuilder.java
index 8a331f3b01e..47e758ab235 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/PropertiesDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/PropertiesDispatchEventBuilder.java
@@ -17,14 +17,13 @@
 
 package org.apache.shardingsphere.mode.manager.cluster.event.builder;
 
-import org.apache.shardingsphere.mode.path.GlobalNodePath;
 import org.apache.shardingsphere.metadata.persist.node.GlobalNode;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import 
org.apache.shardingsphere.mode.event.dispatch.config.AlterPropertiesEvent;
+import org.apache.shardingsphere.mode.path.GlobalNodePath;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Collection;
 import java.util.Optional;
 
@@ -34,8 +33,8 @@ import java.util.Optional;
 public final class PropertiesDispatchEventBuilder implements 
DispatchEventBuilder<AlterPropertiesEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(GlobalNode.getPropsRootNode());
+    public String getSubscribedKey() {
+        return GlobalNode.getPropsRootNode();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/QualifiedDataSourceDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/QualifiedDataSourceDispatchEventBuilder.java
index b5b60ad1241..3ccab9bd6f7 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/QualifiedDataSourceDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/QualifiedDataSourceDispatchEventBuilder.java
@@ -19,19 +19,18 @@ package 
org.apache.shardingsphere.mode.manager.cluster.event.builder;
 
 import com.google.common.base.Strings;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDataSource;
-import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
+import 
org.apache.shardingsphere.infra.state.datasource.qualified.QualifiedDataSourceState;
+import 
org.apache.shardingsphere.infra.state.datasource.qualified.yaml.YamlQualifiedDataSourceState;
+import 
org.apache.shardingsphere.infra.state.datasource.qualified.yaml.YamlQualifiedDataSourceStateSwapper;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
+import org.apache.shardingsphere.metadata.persist.node.QualifiedDataSourceNode;
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
+import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.state.storage.QualifiedDataSourceStateEvent;
-import 
org.apache.shardingsphere.infra.state.datasource.qualified.QualifiedDataSourceState;
-import org.apache.shardingsphere.metadata.persist.node.QualifiedDataSourceNode;
-import 
org.apache.shardingsphere.infra.state.datasource.qualified.yaml.YamlQualifiedDataSourceState;
-import 
org.apache.shardingsphere.infra.state.datasource.qualified.yaml.YamlQualifiedDataSourceStateSwapper;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -40,8 +39,8 @@ import java.util.Optional;
 public final class QualifiedDataSourceDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return Collections.singleton(QualifiedDataSourceNode.getRootPath());
+    public String getSubscribedKey() {
+        return QualifiedDataSourceNode.getRootPath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ShardingSphereDataDispatchEventBuilder.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ShardingSphereDataDispatchEventBuilder.java
index 31d98379421..67058dca9f1 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ShardingSphereDataDispatchEventBuilder.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/builder/ShardingSphereDataDispatchEventBuilder.java
@@ -22,6 +22,8 @@ import com.google.common.base.Strings;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData;
 import org.apache.shardingsphere.metadata.persist.node.ShardingSphereDataNode;
+import org.apache.shardingsphere.mode.event.DataChangedEvent;
+import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.event.dispatch.DispatchEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.DatabaseDataAddedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.DatabaseDataDeletedEvent;
@@ -30,12 +32,9 @@ import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.SchemaDataDel
 import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.ShardingSphereRowDataChangedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.ShardingSphereRowDataDeletedEvent;
 import 
org.apache.shardingsphere.mode.event.dispatch.metadata.data.TableDataChangedEvent;
-import org.apache.shardingsphere.mode.event.DataChangedEvent;
-import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -44,8 +43,8 @@ import java.util.Optional;
 public final class ShardingSphereDataDispatchEventBuilder implements 
DispatchEventBuilder<DispatchEvent> {
     
     @Override
-    public Collection<String> getSubscribedKeys() {
-        return 
Collections.singleton(ShardingSphereDataNode.getShardingSphereDataNodePath());
+    public String getSubscribedKey() {
+        return ShardingSphereDataNode.getShardingSphereDataNodePath();
     }
     
     @Override
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/listener/DataChangedEventListenerRegistry.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/listener/DataChangedEventListenerRegistry.java
index c466934367e..ff1e5ef58ad 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/listener/DataChangedEventListenerRegistry.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/listener/DataChangedEventListenerRegistry.java
@@ -56,6 +56,6 @@ public final class DataChangedEventListenerRegistry {
     }
     
     private void registerGlobalListeners(final DispatchEventBuilder<?> 
builder) {
-        builder.getSubscribedKeys().forEach(each -> repository.watch(each, new 
GlobalMetaDataChangedListener(eventBusContext, builder)));
+        repository.watch(builder.getSubscribedKey(), new 
GlobalMetaDataChangedListener(eventBusContext, builder));
     }
 }

Reply via email to