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

zhonghongsheng 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 b91e3b6100d Refactor 
StorageUnitMetaData.getDataSourcePoolPropertiesMap() (#28148)
b91e3b6100d is described below

commit b91e3b6100d86cc501dadb0683e71d479db96c54
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Aug 17 21:12:22 2023 +0800

    Refactor StorageUnitMetaData.getDataSourcePoolPropertiesMap() (#28148)
---
 .../database/resource/storage/StorageUnitMetaData.java     | 14 +++++++++++---
 .../mode/manager/context/ConfigurationContextManager.java  |  8 ++++----
 .../mode/manager/switcher/SwitchingResource.java           |  6 +++---
 3 files changed, 18 insertions(+), 10 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
index d6525540013..c1a90812a60 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/storage/StorageUnitMetaData.java
@@ -25,6 +25,7 @@ import javax.sql.DataSource;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.stream.Collectors;
 
 /**
  * Storage unit meta data.
@@ -32,8 +33,6 @@ import java.util.Map.Entry;
 @Getter
 public final class StorageUnitMetaData {
     
-    private final Map<String, DataSourcePoolProperties> 
dataSourcePoolPropertiesMap;
-    
     // TODO zhangliang: should refactor
     private final Map<String, StorageUnitNodeMapper> unitNodeMappers;
     
@@ -47,7 +46,6 @@ public final class StorageUnitMetaData {
     
     public StorageUnitMetaData(final String databaseName, final 
Map<StorageNode, DataSource> storageNodeDataSources,
                                final Map<String, DataSourcePoolProperties> 
dataSourcePoolPropertiesMap, final Map<String, StorageUnitNodeMapper> 
unitNodeMappers) {
-        this.dataSourcePoolPropertiesMap = dataSourcePoolPropertiesMap;
         this.unitNodeMappers = unitNodeMappers;
         storageUnits = new LinkedHashMap<>(unitNodeMappers.size(), 1F);
         for (Entry<String, StorageUnitNodeMapper> entry : 
unitNodeMappers.entrySet()) {
@@ -57,6 +55,16 @@ public final class StorageUnitMetaData {
         storageTypes = createStorageTypes();
     }
     
+    /**
+     * Get data source pool properties map.
+     * 
+     * @return data source pool properties map
+     */
+    public Map<String, DataSourcePoolProperties> 
getDataSourcePoolPropertiesMap() {
+        return storageUnits.entrySet().stream()
+                .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
oldValue, LinkedHashMap::new));
+    }
+    
     private Map<String, DataSource> createDataSources() {
         Map<String, DataSource> result = new 
LinkedHashMap<>(storageUnits.size(), 1F);
         for (Entry<String, StorageUnit> entry : storageUnits.entrySet()) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
index 2b3a0973ed8..1dfbe5f22da 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
@@ -342,8 +342,8 @@ public final class ConfigurationContextManager {
         Collection<RuleConfiguration> toBeCreatedRuleConfigs = null == 
ruleConfigs
                 ? 
metaDataContexts.get().getMetaData().getDatabase(databaseName).getRuleMetaData().getConfigurations()
                 : ruleConfigs;
-        DatabaseConfiguration toBeCreatedDatabaseConfig = 
getDatabaseConfiguration(metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
-                switchingResource, toBeCreatedRuleConfigs);
+        DatabaseConfiguration toBeCreatedDatabaseConfig = 
getDatabaseConfiguration(
+                
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData(),
 switchingResource, toBeCreatedRuleConfigs);
         ShardingSphereDatabase changedDatabase = 
createChangedDatabase(metaDataContexts.get().getMetaData().getDatabase(databaseName).getName(),
 internalLoadMetaData,
                 metaDataContexts.get().getPersistService(), 
toBeCreatedDatabaseConfig, metaDataContexts.get().getMetaData().getProps(), 
instanceContext);
         Map<String, ShardingSphereDatabase> result = new 
LinkedHashMap<>(metaDataContexts.get().getMetaData().getDatabases());
@@ -355,10 +355,10 @@ public final class ConfigurationContextManager {
     private DatabaseConfiguration getDatabaseConfiguration(final 
ResourceMetaData resourceMetaData, final SwitchingResource switchingResource,
                                                            final 
Collection<RuleConfiguration> toBeCreatedRuleConfigs) {
         StorageResource storageResource = 
getMergedStorageResource(resourceMetaData, switchingResource);
-        Map<String, DataSourcePoolProperties> dataSourcePoolPropertiesMap = 
null == switchingResource
+        Map<String, DataSourcePoolProperties> propsMap = null == 
switchingResource
                 ? 
resourceMetaData.getStorageUnitMetaData().getDataSourcePoolPropertiesMap()
                 : switchingResource.getMergedDataSourcePoolPropertiesMap();
-        return new DataSourceProvidedDatabaseConfiguration(storageResource, 
toBeCreatedRuleConfigs, dataSourcePoolPropertiesMap);
+        return new DataSourceProvidedDatabaseConfiguration(storageResource, 
toBeCreatedRuleConfigs, propsMap);
     }
     
     private StorageResource getMergedStorageResource(final ResourceMetaData 
currentResourceMetaData, final SwitchingResource switchingResource) {
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/manager/switcher/SwitchingResource.java
index 54bb3b12fc5..3fe81345e19 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/manager/switcher/SwitchingResource.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.mode.manager.switcher;
 
+import lombok.AccessLevel;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
@@ -30,17 +31,16 @@ import java.util.Objects;
  * Switching resource.
  */
 @RequiredArgsConstructor
+@Getter
 public final class SwitchingResource {
     
+    @Getter(AccessLevel.NONE)
     private final ResourceMetaData resourceMetaData;
     
-    @Getter
     private final StorageResource newStorageResource;
     
-    @Getter
     private final StorageResource staleStorageResource;
     
-    @Getter
     private final Map<String, DataSourcePoolProperties> 
mergedDataSourcePoolPropertiesMap;
     
     /**

Reply via email to