This is an automated email from the ASF dual-hosted git repository.
totalo 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 b91974904e9 Refactor ContextManagerBuilder (#19167)
b91974904e9 is described below
commit b91974904e92ce78fdd556946df03c78616b6d94
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 14 23:24:10 2022 +0800
Refactor ContextManagerBuilder (#19167)
* Refactor MetaDataContexts.metaData from optional to required
* Add ContextManagerBuilderParameter.getModeConfiguration
* Refactor StandaloneContextManagerBuilder
* Refactor EventBusContext
* Refactor ClusterContextManagerBuilder
* Refactor ClusterContextManagerBuilder
---
.../shardingsphere/infra/eventbus/EventBusContext.java | 1 +
.../manager/cluster/ClusterContextManagerBuilder.java | 15 +++++++--------
.../standalone/StandaloneContextManagerBuilder.java | 4 +++-
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
index 1abfbf17c08..89e8e5da455 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/eventbus/EventBusContext.java
@@ -23,6 +23,7 @@ import org.slf4j.bridge.SLF4JBridgeHandler;
/**
* Event bus context.
*/
+@SuppressWarnings("UnstableApiUsage")
public final class EventBusContext {
private final EventBus eventBus = new EventBus();
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index 0fbc0e05292..ab4bb414791 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -64,8 +64,7 @@ public final class ClusterContextManagerBuilder implements
ContextManagerBuilder
ClusterPersistRepository repository =
ClusterPersistRepositoryFactory.getInstance((ClusterPersistRepositoryConfiguration)
parameter.getModeConfiguration().getRepository());
MetaDataPersistService persistService = new
MetaDataPersistService(repository);
persistConfigurations(persistService, parameter);
- EventBusContext eventBusContext = new EventBusContext();
- RegistryCenter registryCenter = new RegistryCenter(repository,
eventBusContext);
+ RegistryCenter registryCenter = new RegistryCenter(repository, new
EventBusContext());
InstanceContext instanceContext = buildInstanceContext(registryCenter,
parameter.getInstanceMetaData(), parameter.getModeConfiguration());
registryCenter.getRepository().watchSessionConnection(instanceContext);
MetaDataContexts metaDataContexts =
buildMetaDataContexts(persistService, parameter, instanceContext);
@@ -82,6 +81,12 @@ public final class ClusterContextManagerBuilder implements
ContextManagerBuilder
}
}
+ private InstanceContext buildInstanceContext(final RegistryCenter
registryCenter, final InstanceMetaData instanceMetaData, final
ModeConfiguration modeConfig) {
+ ClusterWorkerIdGenerator clusterWorkerIdGenerator = new
ClusterWorkerIdGenerator(registryCenter.getRepository(), registryCenter,
instanceMetaData);
+ DistributedLockContext distributedLockContext = new
DistributedLockContext(registryCenter.getRepository());
+ return new InstanceContext(new ComputeNodeInstance(instanceMetaData),
clusterWorkerIdGenerator, modeConfig, distributedLockContext,
registryCenter.getEventBusContext());
+ }
+
private MetaDataContexts buildMetaDataContexts(final
MetaDataPersistService persistService,
final
ContextManagerBuilderParameter parameter, final InstanceContext
instanceContext) throws SQLException {
Collection<String> databaseNames = parameter.getInstanceMetaData()
instanceof JDBCInstanceMetaData
@@ -112,12 +117,6 @@ public final class ClusterContextManagerBuilder implements
ContextManagerBuilder
.forEach((schemaName, tables) ->
metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(databaseName,
schemaName, tables)));
}
- private InstanceContext buildInstanceContext(final RegistryCenter
registryCenter, final InstanceMetaData instanceMetaData, final
ModeConfiguration modeConfig) {
- ClusterWorkerIdGenerator clusterWorkerIdGenerator = new
ClusterWorkerIdGenerator(registryCenter.getRepository(), registryCenter,
instanceMetaData);
- DistributedLockContext distributedLockContext = new
DistributedLockContext(registryCenter.getRepository());
- return new InstanceContext(new ComputeNodeInstance(instanceMetaData),
clusterWorkerIdGenerator, modeConfig, distributedLockContext,
registryCenter.getEventBusContext());
- }
-
private void registerOnline(final MetaDataPersistService persistService,
final RegistryCenter registryCenter,
final ContextManagerBuilderParameter
parameter, final ContextManager contextManager) {
contextManager.getInstanceContext().getInstance().setLabels(parameter.getLabels());
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 55bdc839f75..6512ceab7e1 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -38,6 +38,7 @@ import
org.apache.shardingsphere.mode.manager.standalone.lock.StandaloneLockCont
import
org.apache.shardingsphere.mode.manager.standalone.workerid.generator.StandaloneWorkerIdGenerator;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
+import
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepository;
import
org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryFactory;
import org.apache.shardingsphere.schedule.core.ScheduleContextFactory;
@@ -55,7 +56,8 @@ public final class StandaloneContextManagerBuilder implements
ContextManagerBuil
@Override
public ContextManager build(final ContextManagerBuilderParameter
parameter) throws SQLException {
ScheduleContextFactory.getInstance().init(parameter.getInstanceMetaData().getId(),
parameter.getModeConfiguration());
- MetaDataPersistService persistService = new
MetaDataPersistService(StandalonePersistRepositoryFactory.getInstance(parameter.getModeConfiguration().getRepository()));
+ StandalonePersistRepository repository =
StandalonePersistRepositoryFactory.getInstance(parameter.getModeConfiguration().getRepository());
+ MetaDataPersistService persistService = new
MetaDataPersistService(repository);
persistConfigurations(persistService, parameter);
InstanceContext instanceContext = buildInstanceContext(parameter);
return new ContextManager(buildMetaDataContexts(persistService,
parameter, instanceContext), instanceContext);