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 3fd7097fb7d Refactor DeliverEventSubscriber (#34239)
3fd7097fb7d is described below

commit 3fd7097fb7d0011e867c3d5450e9951cf8d46a75
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Fri Jan 3 18:03:18 2025 +0800

    Refactor DeliverEventSubscriber (#34239)
---
 features/readwrite-splitting/core/pom.xml                   |  2 +-
 ...dwriteSplittingQualifiedDataSourceDeletedSubscriber.java |  8 ++++----
 ...ache.shardingsphere.mode.deliver.DeliverEventSubscriber} |  0
 ...teSplittingQualifiedDataSourceDeletedSubscriberTest.java |  9 ++++++++-
 .../mode}/deliver/DeliverEventSubscriber.java               | 10 +++++-----
 .../mode/manager/cluster/ClusterContextManagerBuilder.java  | 13 ++++++-------
 6 files changed, 24 insertions(+), 18 deletions(-)

diff --git a/features/readwrite-splitting/core/pom.xml 
b/features/readwrite-splitting/core/pom.xml
index 0914b61b7d8..43796d0bf18 100644
--- a/features/readwrite-splitting/core/pom.xml
+++ b/features/readwrite-splitting/core/pom.xml
@@ -45,7 +45,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-mode-api</artifactId>
+            <artifactId>shardingsphere-mode-core</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
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 842ac068f42..015bfda5b13 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
@@ -20,8 +20,8 @@ package org.apache.shardingsphere.readwritesplitting.cluster;
 import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import org.apache.shardingsphere.metadata.persist.node.QualifiedDataSourceNode;
-import org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber;
-import org.apache.shardingsphere.mode.spi.PersistRepository;
+import org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber;
+import org.apache.shardingsphere.mode.manager.ContextManager;
 
 /**
  * Readwrite-splitting qualified data source deleted subscriber.
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.mode.spi.PersistRepository;
 @Setter
 public final class ReadwriteSplittingQualifiedDataSourceDeletedSubscriber 
implements DeliverEventSubscriber {
     
-    private PersistRepository repository;
+    private ContextManager contextManager;
     
     /**
      * Delete qualified data source.
@@ -38,6 +38,6 @@ public final class 
ReadwriteSplittingQualifiedDataSourceDeletedSubscriber implem
      */
     @Subscribe
     public void delete(final QualifiedDataSourceDeletedEvent event) {
-        
repository.delete(QualifiedDataSourceNode.getQualifiedDataSourceNodePath(event.getQualifiedDataSource()));
+        
contextManager.getPersistServiceFacade().getRepository().delete(QualifiedDataSourceNode.getQualifiedDataSourceNodePath(event.getQualifiedDataSource()));
     }
 }
diff --git 
a/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber
 
b/features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber
similarity index 100%
rename from 
features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber
rename to 
features/readwrite-splitting/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.deliver.DeliverEventSubscriber
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 837bd8bcc2a..6bb1de62bb1 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,27 +18,34 @@
 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();
-        subscriber.setRepository(repository);
+        
when(contextManager.getPersistServiceFacade().getRepository()).thenReturn(repository);
+        subscriber.setContextManager(contextManager);
     }
     
     @Test
diff --git 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/event/deliver/DeliverEventSubscriber.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
similarity index 81%
rename from 
mode/api/src/main/java/org/apache/shardingsphere/mode/event/deliver/DeliverEventSubscriber.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
index ef278879965..307635db345 100644
--- 
a/mode/api/src/main/java/org/apache/shardingsphere/mode/event/deliver/DeliverEventSubscriber.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/deliver/DeliverEventSubscriber.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.event.deliver;
+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.spi.PersistRepository;
+import org.apache.shardingsphere.mode.manager.ContextManager;
 
 /**
  * Deliver event subscriber factory.
@@ -28,9 +28,9 @@ import org.apache.shardingsphere.mode.spi.PersistRepository;
 public interface DeliverEventSubscriber extends EventSubscriber {
     
     /**
-     * Set persist repository.
+     * Set context manager.
      *
-     * @param repository persist repository
+     * @param contextManager context manager
      */
-    void setRepository(PersistRepository repository);
+    void setContextManager(ContextManager contextManager);
 }
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 51d89f17c3c..f98354a94eb 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
@@ -28,7 +28,7 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
 import org.apache.shardingsphere.infra.util.eventbus.EventSubscriber;
 import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.event.deliver.DeliverEventSubscriber;
+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;
@@ -63,7 +63,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, repository);
+        registerOnline(computeNodeInstanceContext, param, result);
         return result;
     }
     
@@ -74,14 +74,13 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
         return result;
     }
     
-    private void registerOnline(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ContextManagerBuilderParameter param, final 
ContextManager contextManager,
-                                final ClusterPersistRepository repository) {
+    private void registerOnline(final ComputeNodeInstanceContext 
computeNodeInstanceContext, final ContextManagerBuilderParameter param, final 
ContextManager contextManager) {
         
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(repository));
+        
eventSubscriberRegistry.register(createDeliverEventSubscribers(contextManager));
     }
     
     private Collection<String> getDatabaseNames(final 
ContextManagerBuilderParameter param, final MetaDataPersistService 
metaDataPersistService) {
@@ -90,10 +89,10 @@ public final class ClusterContextManagerBuilder implements 
ContextManagerBuilder
                 : 
metaDataPersistService.getDatabaseMetaDataFacade().getDatabase().loadAllDatabaseNames();
     }
     
-    private Collection<EventSubscriber> createDeliverEventSubscribers(final 
ClusterPersistRepository repository) {
+    private Collection<EventSubscriber> createDeliverEventSubscribers(final 
ContextManager contextManager) {
         Collection<EventSubscriber> result = new LinkedList<>();
         for (DeliverEventSubscriber each : 
ShardingSphereServiceLoader.getServiceInstances(DeliverEventSubscriber.class)) {
-            each.setRepository(repository);
+            each.setContextManager(contextManager);
             result.add(each);
         }
         return result;

Reply via email to