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 fcb5901150c Refactor ContextManagerSubscriberFacade to 
ContextManagerSubscriberRegister (#31220)
fcb5901150c is described below

commit fcb5901150c0bc98b927cdebbbff7eb1488de922
Author: Liang Zhang <[email protected]>
AuthorDate: Mon May 13 10:47:22 2024 +0800

    Refactor ContextManagerSubscriberFacade to ContextManagerSubscriberRegister 
(#31220)
    
    * Rename ContextManagerAware.setContextManager()
    
    * Refactor ContextManagerSubscriberFacade
    
    * Refactor ContextManagerSubscriberRegister
    
    * Refactor ContextManagerSubscriberRegister
    
    * Refactor ContextManagerSubscriberRegister
---
 .../cluster/ClusterContextManagerBuilder.java      |  4 +--
 .../subscriber/ProcessListChangedSubscriber.java   | 13 ++++----
 .../subscriber/CacheEvictedSubscriber.java         |  9 ++----
 .../subscriber/ConfigurationChangedSubscriber.java |  7 ++---
 ....java => ContextManagerSubscriberRegister.java} | 35 ++++++++++++++++------
 .../subscriber/DatabaseChangedSubscriber.java      |  7 ++---
 .../ResourceMetaDataChangedSubscriber.java         |  7 ++---
 .../subscriber/StateChangedSubscriber.java         | 10 ++-----
 .../ProcessListChangedSubscriberTest.java          |  2 +-
 .../subscriber/CacheEvictedSubscriberTest.java     |  2 +-
 .../subscriber/StateChangedSubscriberTest.java     |  2 +-
 11 files changed, 47 insertions(+), 51 deletions(-)

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 1574dc48abd..3a04234f4e6 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
@@ -31,7 +31,7 @@ import 
org.apache.shardingsphere.mode.manager.ContextManagerBuilder;
 import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.RegistryCenter;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.workerid.generator.ClusterWorkerIdGenerator;
-import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.ContextManagerSubscriberFacade;
+import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber.ContextManagerSubscriberRegister;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
 import 
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
@@ -84,7 +84,7 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         
contextManager.getInstanceContext().getInstance().setLabels(param.getLabels());
         
contextManager.getInstanceContext().getAllClusterInstances().addAll(registryCenter.getComputeNodeStatusService().loadAllComputeNodeInstances());
         contextManager.getInstanceContext().getEventBusContext().register(new 
RuleItemChangedSubscriber(contextManager));
-        new ContextManagerSubscriberFacade(registryCenter, contextManager);
+        new ContextManagerSubscriberRegister(registryCenter, 
contextManager).register();
     }
     
     private void loadClusterStatus(final RegistryCenter registryCenter, final 
ContextManager contextManager) {
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriber.java
index e8fc86dbc9f..2ea39e0655d 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriber.java
@@ -18,6 +18,7 @@
 package 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber;
 
 import com.google.common.eventbus.Subscribe;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.executor.sql.process.Process;
 import org.apache.shardingsphere.infra.executor.sql.process.ProcessRegistry;
 import 
org.apache.shardingsphere.infra.executor.sql.process.lock.ProcessOperationLockRegistry;
@@ -40,19 +41,15 @@ import java.util.Collection;
  * TODO replace the old ProcessListChangedSubscriber after meta data refactor 
completed
  * New process list changed subscriber.
  */
+@SuppressWarnings("unused")
+@RequiredArgsConstructor
 public final class ProcessListChangedSubscriber {
     
-    private final RegistryCenter registryCenter;
-    
     private final ContextManager contextManager;
     
-    private final YamlProcessListSwapper swapper = new 
YamlProcessListSwapper();
+    private final RegistryCenter registryCenter;
     
-    public ProcessListChangedSubscriber(final RegistryCenter registryCenter, 
final ContextManager contextManager) {
-        this.registryCenter = registryCenter;
-        this.contextManager = contextManager;
-        
contextManager.getInstanceContext().getEventBusContext().register(this);
-    }
+    private final YamlProcessListSwapper swapper = new 
YamlProcessListSwapper();
     
     /**
      * Report local processes.
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriber.java
index 273f36deb49..a8198960f40 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriber.java
@@ -18,25 +18,20 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
 import com.google.common.eventbus.Subscribe;
-import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
-import 
org.apache.shardingsphere.infra.spi.type.ordered.cache.OrderedServicesCache;
 import org.apache.shardingsphere.infra.rule.event.GovernanceEvent;
+import 
org.apache.shardingsphere.infra.spi.type.ordered.cache.OrderedServicesCache;
 
 /**
  * Cache evicted subscriber.
  */
+@SuppressWarnings("unused")
 public final class CacheEvictedSubscriber {
     
-    public CacheEvictedSubscriber(final EventBusContext eventBusContext) {
-        eventBusContext.register(this);
-    }
-    
     /**
      * Callback of any {@link GovernanceEvent}.
      *
      * @param ignored unused
      */
-    @SuppressWarnings("unused")
     @Subscribe
     public void onGovernanceEvent(final GovernanceEvent ignored) {
         OrderedServicesCache.clearCache();
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
index 2c8c283da49..181d8d4dee5 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriber.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
 import com.google.common.eventbus.Subscribe;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.mode.event.config.AlterGlobalRuleConfigurationEvent;
 import org.apache.shardingsphere.mode.event.config.AlterPropertiesEvent;
 import 
org.apache.shardingsphere.mode.event.datasource.unit.AlterStorageUnitEvent;
@@ -28,16 +29,12 @@ import 
org.apache.shardingsphere.mode.manager.ContextManager;
 /**
  * Configuration changed subscriber.
  */
+@RequiredArgsConstructor
 @SuppressWarnings("unused")
 public final class ConfigurationChangedSubscriber {
     
     private final ContextManager contextManager;
     
-    public ConfigurationChangedSubscriber(final ContextManager contextManager) 
{
-        this.contextManager = contextManager;
-        
contextManager.getInstanceContext().getEventBusContext().register(this);
-    }
-    
     /**
      * Renew for register storage unit.
      *
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberFacade.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberRegister.java
similarity index 51%
rename from 
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberFacade.java
rename to 
mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberRegister.java
index 53b06867127..31468d81c72 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberFacade.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ContextManagerSubscriberRegister.java
@@ -17,21 +17,38 @@
 
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
+import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.RegistryCenter;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.process.subscriber.ProcessListChangedSubscriber;
 
+import java.util.Arrays;
+import java.util.Collection;
+
 /**
- * Context manager subscriber facade.
+ * Context manager subscriber register.
  */
-public final class ContextManagerSubscriberFacade {
+public final class ContextManagerSubscriberRegister {
+    
+    private final EventBusContext eventBusContext;
+    
+    private final Collection<Object> subscribers;
+    
+    public ContextManagerSubscriberRegister(final RegistryCenter 
registryCenter, final ContextManager contextManager) {
+        eventBusContext = 
contextManager.getInstanceContext().getEventBusContext();
+        subscribers = Arrays.asList(
+                new ConfigurationChangedSubscriber(contextManager),
+                new ResourceMetaDataChangedSubscriber(contextManager),
+                new DatabaseChangedSubscriber(contextManager),
+                new StateChangedSubscriber(contextManager, registryCenter),
+                new ProcessListChangedSubscriber(contextManager, 
registryCenter),
+                new CacheEvictedSubscriber());
+    }
     
-    public ContextManagerSubscriberFacade(final RegistryCenter registryCenter, 
final ContextManager contextManager) {
-        new ConfigurationChangedSubscriber(contextManager);
-        new ResourceMetaDataChangedSubscriber(contextManager);
-        new DatabaseChangedSubscriber(contextManager);
-        new StateChangedSubscriber(registryCenter, contextManager);
-        new ProcessListChangedSubscriber(registryCenter, contextManager);
-        new 
CacheEvictedSubscriber(contextManager.getInstanceContext().getEventBusContext());
+    /**
+     * Register subscribers.
+     */
+    public void register() {
+        subscribers.forEach(eventBusContext::register);
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/DatabaseChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/DatabaseChangedSubscriber.java
index 976d1caf188..56a958550b6 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/DatabaseChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/DatabaseChangedSubscriber.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
 import com.google.common.eventbus.Subscribe;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.data.event.DatabaseDataAddedEvent;
 import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.data.event.DatabaseDataDeletedEvent;
@@ -30,16 +31,12 @@ import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.data.
 /**
  * Database changed subscriber.
  */
+@RequiredArgsConstructor
 @SuppressWarnings("unused")
 public final class DatabaseChangedSubscriber {
     
     private final ContextManager contextManager;
     
-    public DatabaseChangedSubscriber(final ContextManager contextManager) {
-        this.contextManager = contextManager;
-        
contextManager.getInstanceContext().getEventBusContext().register(this);
-    }
-    
     /**
      * Renew to persist ShardingSphere database data.
      *
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
index 9d1d4909bf6..879e11f2cc3 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriber.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
 import com.google.common.eventbus.Subscribe;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
 import 
org.apache.shardingsphere.mode.event.schema.table.CreateOrAlterTableEvent;
@@ -35,16 +36,12 @@ import java.util.Map;
 /**
  * Resource meta data changed subscriber.
  */
+@RequiredArgsConstructor
 @SuppressWarnings("unused")
 public final class ResourceMetaDataChangedSubscriber {
     
     private final ContextManager contextManager;
     
-    public ResourceMetaDataChangedSubscriber(final ContextManager 
contextManager) {
-        this.contextManager = contextManager;
-        
contextManager.getInstanceContext().getEventBusContext().register(this);
-    }
-    
     /**
      * Renew to persist meta data.
      *
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
index c7559e4d2da..6d9390b2c4a 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriber.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
 
 import com.google.common.eventbus.Subscribe;
+import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDataSource;
@@ -39,18 +40,13 @@ import 
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.statu
 /**
  * State changed subscriber.
  */
+@RequiredArgsConstructor
 @SuppressWarnings("unused")
 public final class StateChangedSubscriber {
     
-    private final RegistryCenter registryCenter;
-    
     private final ContextManager contextManager;
     
-    public StateChangedSubscriber(final RegistryCenter registryCenter, final 
ContextManager contextManager) {
-        this.registryCenter = registryCenter;
-        this.contextManager = contextManager;
-        
contextManager.getInstanceContext().getEventBusContext().register(this);
-    }
+    private final RegistryCenter registryCenter;
     
     /**
      * Renew disabled data source names.
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
index 6eda3641425..c9c785de3a0 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
@@ -86,7 +86,7 @@ class ProcessListChangedSubscriberTest {
                 
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(), 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
                 new ConfigurationProperties(new Properties()))));
         registryCenter = new 
RegistryCenter(mock(ClusterPersistRepository.class), new EventBusContext(), 
mock(ProxyInstanceMetaData.class), null);
-        subscriber = new ProcessListChangedSubscriber(registryCenter, 
contextManager);
+        subscriber = new ProcessListChangedSubscriber(contextManager, 
registryCenter);
     }
     
     private ContextManagerBuilderParameter 
createContextManagerBuilderParameter() {
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriberTest.java
index 3100a4578cd..42dec7ec740 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/CacheEvictedSubscriberTest.java
@@ -31,7 +31,7 @@ class CacheEvictedSubscriberTest {
     @Test
     void assertOnGovernanceEvent() {
         EventBusContext eventBusContext = new EventBusContext();
-        new CacheEvictedSubscriber(eventBusContext);
+        eventBusContext.register(new CacheEvictedSubscriber());
         OrderedServicesCache.cacheServices(getClass(), 
Collections.emptyList(), Collections.emptyMap());
         eventBusContext.post(new DatabaseDeletedEvent("db"));
         assertFalse(OrderedServicesCache.findCachedServices(getClass(), 
Collections.emptyList()).isPresent());
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
index 71ee8ac0641..c0972aad60b 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
@@ -90,7 +90,7 @@ class StateChangedSubscriberTest {
         contextManager.renewMetaDataContexts(new 
MetaDataContexts(contextManager.getMetaDataContexts().getPersistService(), new 
ShardingSphereMetaData(createDatabases(),
                 
contextManager.getMetaDataContexts().getMetaData().getGlobalResourceMetaData(), 
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData(),
                 new ConfigurationProperties(new Properties()))));
-        subscriber = new StateChangedSubscriber(new 
RegistryCenter(mock(ClusterPersistRepository.class), new EventBusContext(), 
mock(ProxyInstanceMetaData.class), null), contextManager);
+        subscriber = new StateChangedSubscriber(contextManager, new 
RegistryCenter(mock(ClusterPersistRepository.class), new EventBusContext(), 
mock(ProxyInstanceMetaData.class), null));
     }
     
     private ContextManagerBuilderParameter 
createContextManagerBuilderParameter() {

Reply via email to