This is an automated email from the ASF dual-hosted git repository.

sunnianjun 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 d23aff8ec4a Move ResourceSwitchManager to MetaDataContextManager 
(#31795)
d23aff8ec4a is described below

commit d23aff8ec4ac1251c4713d6198dc889c28c4f2dd
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Jun 21 11:59:41 2024 +0800

    Move ResourceSwitchManager to MetaDataContextManager (#31795)
---
 .../shardingsphere/mode/manager/ContextManager.java     |  9 ++++-----
 .../mode/metadata/MetaDataContextManager.java           |  6 +++++-
 .../mode/metadata/manager/ConfigurationManager.java     | 12 +++++-------
 .../manager}/ResourceSwitchManager.java                 |  2 +-
 .../manager}/SwitchingResource.java                     |  2 +-
 .../mode/manager/switcher/SwitchingResourceTest.java    |  1 +
 .../StandaloneMetaDataManagerPersistService.java        | 17 ++++++++---------
 7 files changed, 25 insertions(+), 24 deletions(-)

diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 31696171b14..785883e3ae0 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -42,13 +42,12 @@ import 
org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.infra.state.cluster.ClusterState;
 import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
 import 
org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListener;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
+import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
-import org.apache.shardingsphere.mode.metadata.MetaDataContextManager;
-import org.apache.shardingsphere.mode.service.PersistServiceFacade;
 import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
+import org.apache.shardingsphere.mode.service.PersistServiceFacade;
 import org.apache.shardingsphere.mode.spi.PersistRepository;
 import org.apache.shardingsphere.mode.state.StateContext;
 
@@ -179,7 +178,7 @@ public final class ContextManager implements AutoCloseable {
         MetaDataPersistService metaDataPersistService = 
persistServiceFacade.getMetaDataPersistService();
         ConfigurationManager configurationManager = 
metaDataContextManager.getConfigurationManager();
         Map<String, DataSourcePoolProperties> dataSourcePoolPropsFromRegCenter 
= metaDataPersistService.getDataSourceUnitService().load(database.getName());
-        SwitchingResource switchingResource = new 
ResourceSwitchManager().alterStorageUnit(database.getResourceMetaData(), 
dataSourcePoolPropsFromRegCenter);
+        SwitchingResource switchingResource = 
metaDataContextManager.getResourceSwitchManager().alterStorageUnit(database.getResourceMetaData(),
 dataSourcePoolPropsFromRegCenter);
         Collection<RuleConfiguration> ruleConfigs = 
metaDataPersistService.getDatabaseRulePersistService().load(database.getName());
         Map<String, ShardingSphereDatabase> changedDatabases = 
configurationManager.createChangedDatabases(database.getName(), false, 
switchingResource, ruleConfigs);
         ConfigurationProperties props = new 
ConfigurationProperties(metaDataPersistService.getPropsService().load());
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
index 4760a2f8361..0945f7ebe6e 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextManager.java
@@ -21,6 +21,7 @@ import lombok.Getter;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
 import org.apache.shardingsphere.mode.metadata.manager.ResourceMetaDataManager;
+import org.apache.shardingsphere.mode.metadata.manager.ResourceSwitchManager;
 import org.apache.shardingsphere.mode.metadata.manager.RuleItemManager;
 import 
org.apache.shardingsphere.mode.metadata.manager.ShardingSphereDatabaseManager;
 import org.apache.shardingsphere.mode.service.PersistServiceFacade;
@@ -41,10 +42,13 @@ public class MetaDataContextManager {
     
     private final RuleItemManager ruleItemManager;
     
+    private final ResourceSwitchManager resourceSwitchManager;
+    
     public MetaDataContextManager(final AtomicReference<MetaDataContexts> 
metaDataContexts, final ComputeNodeInstanceContext computeNodeInstanceContext,
                                   final PersistServiceFacade 
persistServiceFacade) {
+        resourceSwitchManager = new ResourceSwitchManager();
         databaseManager = new ShardingSphereDatabaseManager(metaDataContexts);
-        configurationManager = new ConfigurationManager(metaDataContexts, 
computeNodeInstanceContext, persistServiceFacade);
+        configurationManager = new ConfigurationManager(metaDataContexts, 
computeNodeInstanceContext, persistServiceFacade, resourceSwitchManager);
         resourceMetaDataManager = new 
ResourceMetaDataManager(metaDataContexts, persistServiceFacade);
         ruleItemManager = new RuleItemManager(metaDataContexts, 
persistServiceFacade, configurationManager);
     }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
index db6ae218f66..6e0c4139b9f 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ConfigurationManager.java
@@ -44,8 +44,6 @@ import 
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigur
 import org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory;
 import org.apache.shardingsphere.metadata.factory.InternalMetaDataFactory;
 import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.MetaDataContextsFactory;
 import org.apache.shardingsphere.mode.service.PersistServiceFacade;
@@ -79,6 +77,8 @@ public final class ConfigurationManager {
     
     private final PersistServiceFacade persistServiceFacade;
     
+    private final ResourceSwitchManager resourceSwitchManager;
+    
     /**
      * Register storage unit.
      *
@@ -88,8 +88,7 @@ public final class ConfigurationManager {
     public synchronized void registerStorageUnit(final String databaseName, 
final Map<String, DataSourcePoolProperties> propsMap) {
         try {
             closeStaleRules(databaseName);
-            SwitchingResource switchingResource =
-                    new 
ResourceSwitchManager().registerStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 propsMap);
+            SwitchingResource switchingResource = 
resourceSwitchManager.registerStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 propsMap);
             buildNewMetaDataContext(databaseName, switchingResource, false);
         } catch (final SQLException ex) {
             log.error("Alter database: {} register storage unit failed", 
databaseName, ex);
@@ -105,8 +104,7 @@ public final class ConfigurationManager {
     public synchronized void alterStorageUnit(final String databaseName, final 
Map<String, DataSourcePoolProperties> propsMap) {
         try {
             closeStaleRules(databaseName);
-            SwitchingResource switchingResource =
-                    new 
ResourceSwitchManager().alterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 propsMap);
+            SwitchingResource switchingResource = 
resourceSwitchManager.alterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 propsMap);
             buildNewMetaDataContext(databaseName, switchingResource, false);
         } catch (final SQLException ex) {
             log.error("Alter database: {} register storage unit failed", 
databaseName, ex);
@@ -122,7 +120,7 @@ public final class ConfigurationManager {
     public synchronized void unregisterStorageUnit(final String databaseName, 
final String storageUnitName) {
         try {
             closeStaleRules(databaseName);
-            SwitchingResource switchingResource = new 
ResourceSwitchManager().unregisterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
+            SwitchingResource switchingResource = 
resourceSwitchManager.unregisterStorageUnit(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
                     Collections.singletonList(storageUnitName));
             buildNewMetaDataContext(databaseName, switchingResource, true);
         } catch (final SQLException ex) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
similarity index 99%
rename from 
mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
index 2431cd90d56..f805f64dc66 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/ResourceSwitchManager.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.manager.switcher;
+package org.apache.shardingsphere.mode.metadata.manager;
 
 import 
org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolCreator;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SwitchingResource.java
similarity index 97%
rename from 
mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
rename to 
mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SwitchingResource.java
index 2838e8ed4e8..0feab92c1a0 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResource.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/manager/SwitchingResource.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.mode.manager.switcher;
+package org.apache.shardingsphere.mode.metadata.manager;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
index 33fa4e59da1..bd1deafb092 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.mode.manager.switcher;
 
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.Test;
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
index 629272a1a76..80e1ece543d 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/service/StandaloneMetaDataManagerPersistService.java
@@ -40,12 +40,11 @@ import 
org.apache.shardingsphere.metadata.persist.service.database.DatabaseMetaD
 import org.apache.shardingsphere.mode.event.DataChangedEvent;
 import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
 import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.manager.switcher.ResourceSwitchManager;
-import org.apache.shardingsphere.mode.manager.switcher.SwitchingResource;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import 
org.apache.shardingsphere.mode.metadata.builder.RuleConfigurationEventBuilder;
-import 
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
 import org.apache.shardingsphere.mode.metadata.manager.ConfigurationManager;
+import org.apache.shardingsphere.mode.metadata.manager.SwitchingResource;
+import 
org.apache.shardingsphere.mode.metadata.refresher.util.TableRefreshUtils;
 import 
org.apache.shardingsphere.mode.service.persist.MetaDataManagerPersistService;
 import org.apache.shardingsphere.single.config.SingleRuleConfiguration;
 
@@ -218,8 +217,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     
     @Override
     public void registerStorageUnits(final String databaseName, final 
Map<String, DataSourcePoolProperties> toBeRegisteredProps) throws SQLException {
-        SwitchingResource switchingResource =
-                new 
ResourceSwitchManager().registerStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 toBeRegisteredProps);
+        SwitchingResource switchingResource = 
contextManager.getMetaDataContextManager().getResourceSwitchManager().registerStorageUnit(contextManager.getMetaDataContexts()
+                
.getMetaData().getDatabase(databaseName).getResourceMetaData(), 
toBeRegisteredProps);
         
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getMetaDataContextManager().getConfigurationManager()
                 .createChangedDatabases(databaseName, false, 
switchingResource, null));
         
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
@@ -235,8 +234,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     
     @Override
     public void alterStorageUnits(final String databaseName, final Map<String, 
DataSourcePoolProperties> toBeUpdatedProps) throws SQLException {
-        SwitchingResource switchingResource =
-                new 
ResourceSwitchManager().alterStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 toBeUpdatedProps);
+        SwitchingResource switchingResource = 
contextManager.getMetaDataContextManager().getResourceSwitchManager().alterStorageUnit(contextManager.getMetaDataContexts().getMetaData()
+                .getDatabase(databaseName).getResourceMetaData(), 
toBeUpdatedProps);
         
contextManager.getMetaDataContexts().getMetaData().getDatabases().putAll(contextManager.getMetaDataContextManager().getConfigurationManager()
                 .createChangedDatabases(databaseName, true, switchingResource, 
null));
         
contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules()
@@ -250,8 +249,8 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
     
     @Override
     public void unregisterStorageUnits(final String databaseName, final 
Collection<String> toBeDroppedStorageUnitNames) throws SQLException {
-        SwitchingResource switchingResource =
-                new 
ResourceSwitchManager().unregisterStorageUnit(contextManager.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 toBeDroppedStorageUnitNames);
+        SwitchingResource switchingResource = 
contextManager.getMetaDataContextManager().getResourceSwitchManager().unregisterStorageUnit(contextManager.getMetaDataContexts().getMetaData()
+                .getDatabase(databaseName).getResourceMetaData(), 
toBeDroppedStorageUnitNames);
         ConfigurationManager configurationManager = 
contextManager.getMetaDataContextManager().getConfigurationManager();
         MetaDataContexts reloadMetaDataContexts = 
configurationManager.createMetaDataContexts(databaseName, false, 
switchingResource, null);
         configurationManager.alterSchemaMetaData(databaseName, 
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),

Reply via email to