This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 380d663a718 Revise #25964 (#25981)
380d663a718 is described below
commit 380d663a7184593cfa945492e28820cc7e9da732
Author: zhaojinchao <[email protected]>
AuthorDate: Thu Jun 1 19:38:54 2023 +0800
Revise #25964 (#25981)
---
...ReadwriteSplittingRuleConfigurationSwapper.java | 2 +-
.../yaml/swapper/NewYamlConfigurationSwapper.java | 2 +-
.../persist/node/NewDatabaseMetaDataNode.java | 2 +-
.../cluster/NewClusterContextManagerBuilder.java | 6 +-
.../cluster/NewClusterModeContextManager.java | 2 +-
.../coordinator/registry/NewGovernanceWatcher.java | 2 +-
.../NewConfigurationChangedSubscriber.java | 154 ---------------------
.../NewContextManagerSubscriberFacade.java | 2 -
8 files changed, 9 insertions(+), 163 deletions(-)
diff --git
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/NewYamlReadwriteSplittingRuleConfigurationSwapper.java
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/NewYamlReadwriteSplittingRuleConfigurationSwapper.java
index 07c79b052e1..d95c7a40b30 100644
---
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/NewYamlReadwriteSplittingRuleConfigurationSwapper.java
+++
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/yaml/swapper/NewYamlReadwriteSplittingRuleConfigurationSwapper.java
@@ -31,8 +31,8 @@ import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Map.Entry;
-// TODO Rename YamlReadwriteSplittingRuleConfigurationSwapper when metadata
structure adjustment completed. #25485
/**
+ * TODO Rename YamlReadwriteSplittingRuleConfigurationSwapper when metadata
structure adjustment completed. #25485
* YAML readwrite-splitting rule configuration swapper.
*/
public final class NewYamlReadwriteSplittingRuleConfigurationSwapper
implements NewYamlRuleConfigurationSwapper<ReadwriteSplittingRuleConfiguration>
{
diff --git
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/swapper/NewYamlConfigurationSwapper.java
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/swapper/NewYamlConfigurationSwapper.java
index abc29a5f9ea..1e2ee2f7542 100644
---
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/swapper/NewYamlConfigurationSwapper.java
+++
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/swapper/NewYamlConfigurationSwapper.java
@@ -21,8 +21,8 @@ import
org.apache.shardingsphere.infra.util.yaml.datanode.YamlDataNode;
import java.util.Collection;
-// TODO Rename YamlConfigurationSwapper when metadata structure adjustment
completed. #25485
/**
+ * TODO Rename YamlConfigurationSwapper when metadata structure adjustment
completed. #25485
* YAML configuration swapper.
*
* @param <T> type of swapped object
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
index c0b3247b3b2..6d6ee125f3b 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/NewDatabaseMetaDataNode.java
@@ -21,8 +21,8 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import
org.apache.shardingsphere.metadata.persist.node.metadata.datasource.DataSourceNodeConverter;
-// TODO Rename DatabaseMetaDataNode when metadata structure adjustment
completed. #25485
/**
+ * TODO Rename DatabaseMetaDataNode when metadata structure adjustment
completed. #25485
* New database meta data node.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterContextManagerBuilder.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterContextManagerBuilder.java
index b59508afda3..9a2013c55c6 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterContextManagerBuilder.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterContextManagerBuilder.java
@@ -33,6 +33,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.NewContextManagerSubscriberFacade;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.NewMetaDataContextsFactory;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
@@ -58,7 +59,7 @@ public final class NewClusterContextManagerBuilder implements
ContextManagerBuil
MetaDataContexts metaDataContexts =
NewMetaDataContextsFactory.create(persistService, param, instanceContext,
registryCenter.getStorageNodeStatusService().loadStorageNodes());
ContextManager result = new ContextManager(metaDataContexts,
instanceContext);
setContextManagerAware(result);
- registerOnline(registryCenter, param, result);
+ registerOnline(persistService, registryCenter, param, result);
return result;
}
@@ -78,10 +79,11 @@ public final class NewClusterContextManagerBuilder
implements ContextManagerBuil
((ContextManagerAware)
contextManager.getInstanceContext().getModeContextManager()).setContextManagerAware(contextManager);
}
- private void registerOnline(final RegistryCenter registryCenter, final
ContextManagerBuilderParameter param, final ContextManager contextManager) {
+ private void registerOnline(final NewMetaDataPersistService
persistService, final RegistryCenter registryCenter, final
ContextManagerBuilderParameter param, final ContextManager contextManager) {
loadClusterStatus(registryCenter, contextManager);
contextManager.getInstanceContext().getInstance().setLabels(param.getLabels());
contextManager.getInstanceContext().getAllClusterInstances().addAll(registryCenter.getComputeNodeStatusService().loadAllComputeNodeInstances());
+ new NewContextManagerSubscriberFacade(persistService, registryCenter,
contextManager);
registerRuleConfigurationSubscribers(contextManager.getMetaDataContexts(),
contextManager.getInstanceContext());
registryCenter.onlineInstance(contextManager.getInstanceContext().getInstance());
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
index e692ff2a4e0..a5136ee093e 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/NewClusterModeContextManager.java
@@ -35,7 +35,7 @@ import java.util.Properties;
import java.util.stream.Collectors;
/**
- * TODO rename to ClusterModeContextManager after meta data refactor completed
+ * TODO Rename to ClusterModeContextManager after meta data refactor completed
* New cluster mode context manager.
*/
public final class NewClusterModeContextManager implements ModeContextManager,
ContextManagerAware {
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/NewGovernanceWatcher.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/NewGovernanceWatcher.java
index a62ebaeda4a..bda655830ec 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/NewGovernanceWatcher.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/NewGovernanceWatcher.java
@@ -24,8 +24,8 @@ import
org.apache.shardingsphere.mode.repository.cluster.listener.DataChangedEve
import java.util.Collection;
import java.util.Optional;
-// TODO Rename GovernanceWatcher when metadata structure adjustment completed.
#25485
/**
+ * TODO Rename GovernanceWatcher when metadata structure adjustment completed.
#25485
* Governance watcher.
*
* @param <T> type of event
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewConfigurationChangedSubscriber.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewConfigurationChangedSubscriber.java
deleted file mode 100644
index 5aa0a938fa6..00000000000
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewConfigurationChangedSubscriber.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
-
-import com.google.common.eventbus.Subscribe;
-import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
-import org.apache.shardingsphere.infra.datasource.state.DataSourceState;
-import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDatabase;
-import
org.apache.shardingsphere.infra.rule.identifier.type.StaticDataSourceContainedRule;
-import org.apache.shardingsphere.metadata.persist.NewMetaDataPersistService;
-import org.apache.shardingsphere.mode.event.storage.StorageNodeDataSource;
-import
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceChangedEvent;
-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.config.event.datasource.DataSourceChangedEvent;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.props.PropertiesChangedEvent;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.rule.GlobalRuleConfigurationsChangedEvent;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.rule.RuleConfigurationsChangedEvent;
-import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.config.event.version.DatabaseVersionChangedEvent;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
-/**
- * TODO replace the old implementation after meta data refactor completed
- * New configuration changed subscriber.
- */
-@SuppressWarnings("UnstableApiUsage")
-public final class NewConfigurationChangedSubscriber {
-
- private final NewMetaDataPersistService persistService;
-
- private final RegistryCenter registryCenter;
-
- private final ContextManager contextManager;
-
- public NewConfigurationChangedSubscriber(final NewMetaDataPersistService
persistService, final RegistryCenter registryCenter, final ContextManager
contextManager) {
- this.persistService = persistService;
- this.registryCenter = registryCenter;
- this.contextManager = contextManager;
-
contextManager.getInstanceContext().getEventBusContext().register(this);
- disableDataSources();
- }
-
- /**
- * Renew data source configuration.
- *
- * @param event data source changed event.
- */
- @Subscribe
- public synchronized void renew(final DataSourceChangedEvent event) {
- if
(persistService.getMetaDataVersionPersistService().isActiveVersion(event.getDatabaseName(),
event.getDatabaseVersion())) {
-
contextManager.alterDataSourceConfiguration(event.getDatabaseName(),
event.getDataSourcePropertiesMap());
- disableDataSources();
- }
- }
-
- /**
- * Renew rule configurations.
- *
- * @param event rule configurations changed event
- */
- @Subscribe
- public synchronized void renew(final RuleConfigurationsChangedEvent event)
{
- if
(persistService.getMetaDataVersionPersistService().isActiveVersion(event.getDatabaseName(),
event.getDatabaseVersion())) {
- contextManager.alterRuleConfiguration(event.getDatabaseName(),
event.getRuleConfigs());
- disableDataSources();
- }
- }
-
- /**
- * Renew global rule configurations.
- *
- * @param event global rule configurations changed event
- */
- @Subscribe
- public synchronized void renew(final GlobalRuleConfigurationsChangedEvent
event) {
- contextManager.alterGlobalRuleConfiguration(event.getRuleConfigs());
- disableDataSources();
- }
-
- /**
- * Renew with new database version.
- *
- * @param event database version changed event
- */
- @Subscribe
- public synchronized void renew(final DatabaseVersionChangedEvent event) {
- Map<String, DataSourceProperties> dataSourcePropertiesMap =
persistService.getDataSourceService().load(event.getDatabaseName(),
event.getActiveVersion());
- Collection<RuleConfiguration> ruleConfigs =
persistService.getDatabaseRulePersistService().load(event.getDatabaseName(),
event.getActiveVersion());
-
contextManager.alterDataSourceAndRuleConfiguration(event.getDatabaseName(),
dataSourcePropertiesMap, ruleConfigs);
- disableDataSources();
- }
-
- /**
- * Renew properties.
- *
- * @param event properties changed event
- */
- @Subscribe
- public synchronized void renew(final PropertiesChangedEvent event) {
- contextManager.alterProperties(event.getProps());
- }
-
- private void disableDataSources() {
- Map<String, StorageNodeDataSource> storageNodes =
getDisabledDataSources();
- for (Entry<String, ShardingSphereDatabase> entry :
contextManager.getMetaDataContexts().getMetaData().getDatabases().entrySet()) {
-
entry.getValue().getRuleMetaData().findRules(StaticDataSourceContainedRule.class).forEach(each
-> disableDataSources(entry.getKey(), each, storageNodes));
- }
- }
-
- private void disableDataSources(final String databaseName, final
StaticDataSourceContainedRule rule, final Map<String, StorageNodeDataSource>
storageNodes) {
- for (Entry<String, StorageNodeDataSource> entry :
storageNodes.entrySet()) {
- QualifiedDatabase database = new QualifiedDatabase(entry.getKey());
- if (!database.getDatabaseName().equals(databaseName)) {
- continue;
- }
- disableDataSources(entry.getValue(), rule, database);
- }
- }
-
- private void disableDataSources(final StorageNodeDataSource
storageNodeDataSource, final StaticDataSourceContainedRule rule, final
QualifiedDatabase database) {
- for (Entry<String, Collection<String>> entry :
rule.getDataSourceMapper().entrySet()) {
- if (!database.getGroupName().equals(entry.getKey())) {
- continue;
- }
- entry.getValue().forEach(each -> rule.updateStatus(new
StorageNodeDataSourceChangedEvent(database, storageNodeDataSource)));
- }
- }
-
- private Map<String, StorageNodeDataSource> getDisabledDataSources() {
- return
registryCenter.getStorageNodeStatusService().loadStorageNodes().entrySet()
- .stream().filter(entry -> DataSourceState.DISABLED ==
entry.getValue().getStatus()).collect(Collectors.toMap(Entry::getKey,
Entry::getValue));
- }
-}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewContextManagerSubscriberFacade.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewContextManagerSubscriberFacade.java
index 37264389dbf..1489b7c3e97 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewContextManagerSubscriberFacade.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/NewContextManagerSubscriberFacade.java
@@ -29,8 +29,6 @@ import
org.apache.shardingsphere.mode.manager.cluster.coordinator.registry.proce
public final class NewContextManagerSubscriberFacade {
public NewContextManagerSubscriberFacade(final NewMetaDataPersistService
persistService, final RegistryCenter registryCenter, final ContextManager
contextManager) {
- new NewConfigurationChangedSubscriber(persistService, registryCenter,
contextManager);
- // TODO replace all to new subscriber
new ResourceMetaDataChangedSubscriber(contextManager);
new DatabaseChangedSubscriber(contextManager);
new StateChangedSubscriber(registryCenter, contextManager);