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 51bbcd2124f Refactor DeliverEventSubscriber (#34244)
51bbcd2124f is described below

commit 51bbcd2124fd41443455ee43cba32d1e6e7ac7ca
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jan 4 17:31:06 2025 +0800

    Refactor DeliverEventSubscriber (#34244)
---
 ...writeSplittingQualifiedDataSourceDeletedSubscriber.java |  6 +++---
 ...eSplittingQualifiedDataSourceDeletedSubscriberTest.java |  9 +--------
 .../mode/deliver/DeliverEventSubscriber.java               |  8 ++++----
 .../mode/manager/cluster/ClusterContextManagerBuilder.java | 14 ++++++++------
 4 files changed, 16 insertions(+), 21 deletions(-)

diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriber.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriber.java
index 015bfda5b13..437aa755f23 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriber.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriber.java
@@ -21,7 +21,7 @@ import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import org.apache.shardingsphere.metadata.persist.node.QualifiedDataSourceNode;
 import org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber;
-import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 /**
  * Readwrite-splitting qualified data source deleted subscriber.
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 @Setter
 public final class ReadwriteSplittingQualifiedDataSourceDeletedSubscriber 
implements DeliverEventSubscriber {
     
-    private ContextManager contextManager;
+    private PersistRepository repository;
     
     /**
      * Delete qualified data source.
@@ -38,6 +38,6 @@ public final class 
ReadwriteSplittingQualifiedDataSourceDeletedSubscriber implem
      */
     @Subscribe
     public void delete(final QualifiedDataSourceDeletedEvent event) {
-        
contextManager.getPersistServiceFacade().getRepository().delete(QualifiedDataSourceNode.getQualifiedDataSourceNodePath(event.getQualifiedDataSource()));
+        
repository.delete(QualifiedDataSourceNode.getQualifiedDataSourceNodePath(event.getQualifiedDataSource()));
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriberTest.java
 
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriberTest.java
index 6bb1de62bb1..837bd8bcc2a 100644
--- 
a/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriberTest.java
+++ 
b/features/readwrite-splitting/core/src/test/java/org/apache/shardingsphere/readwritesplitting/cluster/ReadwriteSplittingQualifiedDataSourceDeletedSubscriberTest.java
@@ -18,34 +18,27 @@
 package org.apache.shardingsphere.readwritesplitting.cluster;
 
 import 
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDataSource;
-import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 @ExtendWith(MockitoExtension.class)
 class ReadwriteSplittingQualifiedDataSourceDeletedSubscriberTest {
     
     private ReadwriteSplittingQualifiedDataSourceDeletedSubscriber subscriber;
     
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private ContextManager contextManager;
-    
     @Mock
     private PersistRepository repository;
     
     @BeforeEach
     void setUp() {
         subscriber = new 
ReadwriteSplittingQualifiedDataSourceDeletedSubscriber();
-        
when(contextManager.getPersistServiceFacade().getRepository()).thenReturn(repository);
-        subscriber.setContextManager(contextManager);
+        subscriber.setRepository(repository);
     }
     
     @Test
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 307635db345..e5f985cc006 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 @@ package org.apache.shardingsphere.mode.deliver;
 
 import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
 import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
-import org.apache.shardingsphere.mode.manager.ContextManager;
+import org.apache.shardingsphere.mode.spi.PersistRepository;
 
 /**
  * Deliver event subscriber factory.
@@ -28,9 +28,9 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 public interface DeliverEventSubscriber extends EventSubscriber {
     
     /**
-     * Set context manager.
+     * Set persist repository.
      *
-     * @param contextManager context manager
+     * @param repository persist repository
      */
-    void setContextManager(ContextManager contextManager);
+    void setRepository(PersistRepository repository);
 }
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 f98354a94eb..82bc1e1145a 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
@@ -32,16 +32,17 @@ import 
org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.manager.ContextManagerBuilder;
 import org.apache.shardingsphere.mode.manager.ContextManagerBuilderParameter;
-import 
org.apache.shardingsphere.mode.manager.cluster.subscriber.ClusterEventSubscriberRegistry;
 import 
org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry;
 import 
org.apache.shardingsphere.mode.manager.cluster.exception.MissingRequiredClusterRepositoryConfigurationException;
 import org.apache.shardingsphere.mode.manager.cluster.lock.ClusterLockContext;
 import 
org.apache.shardingsphere.mode.manager.cluster.persist.service.GlobalLockPersistService;
+import 
org.apache.shardingsphere.mode.manager.cluster.subscriber.ClusterEventSubscriberRegistry;
 import 
org.apache.shardingsphere.mode.manager.cluster.workerid.ClusterWorkerIdGenerator;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 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 java.sql.SQLException;
 import java.util.Collection;
@@ -63,7 +64,7 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         MetaDataPersistService metaDataPersistService = new 
MetaDataPersistService(repository);
         MetaDataContexts metaDataContexts = 
MetaDataContextsFactory.create(metaDataPersistService, param, 
computeNodeInstanceContext);
         ContextManager result = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, repository);
-        registerOnline(computeNodeInstanceContext, param, result);
+        registerOnline(computeNodeInstanceContext, param, result, repository);
         return result;
     }
     
@@ -74,13 +75,14 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         return result;
     }
     
-    private void registerOnline(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ContextManagerBuilderParameter param, final 
ContextManager contextManager) {
+    private void registerOnline(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ContextManagerBuilderParameter param,
+                                final ContextManager contextManager, final 
PersistRepository repository) {
         
contextManager.getPersistServiceFacade().getComputeNodePersistService().registerOnline(computeNodeInstanceContext.getInstance());
         
contextManager.getComputeNodeInstanceContext().getClusterInstanceRegistry().getAllClusterInstances()
                 
.addAll(contextManager.getPersistServiceFacade().getComputeNodePersistService().loadAllComputeNodeInstances());
         new DataChangedEventListenerRegistry(contextManager, 
getDatabaseNames(param, 
contextManager.getPersistServiceFacade().getMetaDataPersistService())).register();
         ClusterEventSubscriberRegistry eventSubscriberRegistry = new 
ClusterEventSubscriberRegistry(contextManager.getComputeNodeInstanceContext().getEventBusContext());
-        
eventSubscriberRegistry.register(createDeliverEventSubscribers(contextManager));
+        
eventSubscriberRegistry.register(createDeliverEventSubscribers(repository));
     }
     
     private Collection<String> getDatabaseNames(final 
ContextManagerBuilderParameter param, final MetaDataPersistService 
metaDataPersistService) {
@@ -89,10 +91,10 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
                 : 
metaDataPersistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames();
     }
     
-    private Collection<EventSubscriber> createDeliverEventSubscribers(final 
ContextManager contextManager) {
+    private Collection<EventSubscriber> createDeliverEventSubscribers(final 
PersistRepository repository) {
         Collection<EventSubscriber> result = new LinkedList<>();
         for (DeliverEventSubscriber each : 
ShardingSphereServiceLoader.getServiceInstances(DeliverEventSubscriber.class)) {
-            each.setContextManager(contextManager);
+            each.setRepository(repository);
             result.add(each);
         }
         return result;

Reply via email to