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() {