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;