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 <[email protected]>
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;