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

zhaojinchao 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 0e9af3788f6 Refactor StorageUnitMetaData (#28617)
0e9af3788f6 is described below

commit 0e9af3788f601da055d1a0c044747aa59ec0da28
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Sep 28 22:18:48 2023 +0800

    Refactor StorageUnitMetaData (#28617)
    
    * Refactor StorageUnitMetaData
    
    * Fix test case
---
 .../metadata/database/resource/ResourceMetaData.java    |  9 +++++----
 .../database/resource/unit/StorageUnitMetaData.java     | 17 +++++------------
 .../subscriber/ConfigurationChangedSubscriberTest.java  |  1 +
 3 files changed, 11 insertions(+), 16 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
index f6d0e3ddaa7..2f5e5dfda4f 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
@@ -49,15 +49,16 @@ public final class ResourceMetaData {
     
     public ResourceMetaData(final Map<String, DataSource> dataSources) {
         this.dataSources = 
StorageNodeUtils.getStorageNodeDataSources(dataSources);
-        storageUnitMetaData = new StorageUnitMetaData(null, this.dataSources, 
dataSources.entrySet().stream()
-                .collect(Collectors.toMap(Entry::getKey, entry -> 
DataSourcePoolPropertiesCreator.create(entry.getValue()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new)),
-                StorageUnitNodeMapUtils.fromDataSources(dataSources));
+        storageUnitMetaData = new StorageUnitMetaData(null, 
StorageUnitNodeMapUtils.fromDataSources(dataSources),
+                dataSources.entrySet().stream().collect(
+                        Collectors.toMap(Entry::getKey, entry -> 
DataSourcePoolPropertiesCreator.create(entry.getValue()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new)),
+                this.dataSources);
     }
     
     public ResourceMetaData(final String databaseName, final 
Map<StorageNodeName, DataSource> dataSources,
                             final Map<String, StorageNode> storageUnitNodeMap, 
final Map<String, DataSourcePoolProperties> propsMap) {
         this.dataSources = dataSources;
-        storageUnitMetaData = new StorageUnitMetaData(databaseName, 
dataSources, propsMap, storageUnitNodeMap);
+        storageUnitMetaData = new StorageUnitMetaData(databaseName, 
storageUnitNodeMap, propsMap, dataSources);
     }
     
     /**
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
index 34ce3e90ef4..5981c1915f9 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
@@ -37,28 +37,21 @@ public final class StorageUnitMetaData {
     // TODO zhangliang: should refactor
     private final Map<String, StorageNode> storageNodes;
     
+    private final Map<String, DataSourcePoolProperties> 
dataSourcePoolPropertiesMap;
+    
     private final Map<String, StorageUnit> storageUnits;
     
     // TODO zhangliang: should refactor
     private final Map<String, DataSource> dataSources;
     
-    public StorageUnitMetaData(final String databaseName, final 
Map<StorageNodeName, DataSource> storageNodeDataSources,
-                               final Map<String, DataSourcePoolProperties> 
dataSourcePoolPropertiesMap, final Map<String, StorageNode> storageNodes) {
+    public StorageUnitMetaData(final String databaseName, final Map<String, 
StorageNode> storageNodes, final Map<String, DataSourcePoolProperties> 
dataSourcePoolPropertiesMap,
+                               final Map<StorageNodeName, DataSource> 
storageNodeDataSources) {
         this.storageNodes = storageNodes;
+        this.dataSourcePoolPropertiesMap = dataSourcePoolPropertiesMap;
         storageUnits = storageNodes.entrySet().stream().collect(
                 Collectors.toMap(Entry::getKey, entry -> new 
StorageUnit(databaseName, storageNodeDataSources, 
dataSourcePoolPropertiesMap.get(entry.getKey()), entry.getValue()),
                         (oldValue, currentValue) -> currentValue, () -> new 
LinkedHashMap<>(this.storageNodes.size(), 1F)));
         dataSources = storageUnits.entrySet().stream().collect(
                 Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSource(), (oldValue, currentValue) -> currentValue, () 
-> new LinkedHashMap<>(storageUnits.size(), 1F)));
     }
-    
-    /**
-     * 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));
-    }
 }
diff --git 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
index 3b76384bebb..b2dd14aa692 100644
--- 
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
+++ 
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
@@ -113,6 +113,7 @@ class ConfigurationChangedSubscriberTest {
     private Map<String, ShardingSphereDatabase> createDatabases() {
         when(database.getName()).thenReturn("db");
         ResourceMetaData resourceMetaData = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
+        
when(resourceMetaData.getStorageUnitMetaData().getStorageNodes()).thenReturn(Collections.emptyMap());
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         
when(database.getSchemas()).thenReturn(Collections.singletonMap("foo_schema", 
new ShardingSphereSchema()));
         
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));

Reply via email to