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);

Reply via email to