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 0cfa08a7993 Refactor usage of StorageUnitMetaData.storageTypes (#28209)
0cfa08a7993 is described below

commit 0cfa08a7993688b31076c779a053dc98d1ead863
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Aug 21 22:33:05 2023 +0800

    Refactor usage of StorageUnitMetaData.storageTypes (#28209)
---
 .../route/engine/type/standard/assertion/ShardingRouteAssert.java | 6 +-----
 .../metadata/database/resource/storage/StorageUnitMetaData.java   | 6 +-----
 .../database/schema/builder/GenericSchemaBuilderMaterial.java     | 7 ++++++-
 .../apache/shardingsphere/mode/manager/ContextManagerTest.java    | 8 ++++----
 4 files changed, 12 insertions(+), 15 deletions(-)

diff --git 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
index 8e3d00180ae..c10251fc83b 100644
--- 
a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
+++ 
b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/standard/assertion/ShardingRouteAssert.java
@@ -53,7 +53,6 @@ import java.util.Properties;
 
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 /**
  * Sharding route assert.
@@ -78,10 +77,7 @@ public final class ShardingRouteAssert {
         SQLStatementParserEngine sqlStatementParserEngine = new 
SQLStatementParserEngine(databaseType,
                 new CacheOption(2000, 65535L), new CacheOption(128, 1024L), 
false);
         RuleMetaData ruleMetaData = new 
RuleMetaData(Arrays.asList(shardingRule, singleRule, timestampServiceRule));
-        ResourceMetaData resourceMetaData = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
-        
when(resourceMetaData.getStorageUnitMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
 databaseType));
-        ShardingSphereDatabase database = new ShardingSphereDatabase(
-                DefaultDatabase.LOGIC_NAME, databaseType, resourceMetaData, 
ruleMetaData, schemas);
+        ShardingSphereDatabase database = new 
ShardingSphereDatabase(DefaultDatabase.LOGIC_NAME, databaseType, 
mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), ruleMetaData, schemas);
         SQLStatementContext sqlStatementContext =
                 new SQLBindEngine(createShardingSphereMetaData(database), 
DefaultDatabase.LOGIC_NAME).bind(sqlStatementParserEngine.parse(sql, false), 
params);
         QueryContext queryContext = new QueryContext(sqlStatementContext, sql, 
params);
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 c1a90812a60..f998d941d12 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
@@ -74,10 +74,6 @@ public final class StorageUnitMetaData {
     }
     
     private Map<String, DatabaseType> createStorageTypes() {
-        Map<String, DatabaseType> result = new 
LinkedHashMap<>(storageUnits.size(), 1F);
-        for (Entry<String, StorageUnit> entry : storageUnits.entrySet()) {
-            result.put(entry.getKey(), entry.getValue().getStorageType());
-        }
-        return result;
+        return 
storageUnits.entrySet().stream().collect(Collectors.toMap(Entry::getKey, entry 
-> entry.getValue().getStorageType(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new));
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
index 409ed751e81..50e880ad819 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/builder/GenericSchemaBuilderMaterial.java
@@ -26,7 +26,10 @@ import 
org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 
 import javax.sql.DataSource;
 import java.util.Collection;
+import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Map.Entry;
+import java.util.stream.Collectors;
 
 /**
  * ShardingSphere schema builder material.
@@ -49,7 +52,9 @@ public final class GenericSchemaBuilderMaterial {
     
     public GenericSchemaBuilderMaterial(final DatabaseType protocolType, final 
StorageUnitMetaData storageUnitMetaData,
                                         final Collection<ShardingSphereRule> 
rules, final ConfigurationProperties props, final String defaultSchemaName) {
-        this(protocolType, storageUnitMetaData.getStorageTypes(), 
storageUnitMetaData.getDataSources(), rules, props, defaultSchemaName);
+        this(protocolType, 
storageUnitMetaData.getStorageUnits().entrySet().stream()
+                .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getStorageType(), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new)),
+                storageUnitMetaData.getDataSources(), rules, props, 
defaultSchemaName);
     }
     
     /**
diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 26e2acaad8b..f78db7fc528 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -104,7 +104,9 @@ class ContextManagerTest {
         when(mutableDataNodeRule.findTableDataNode("foo_schema", 
"foo_tbl")).thenReturn(Optional.of(mock(DataNode.class)));
         when(result.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(mutableDataNodeRule)));
         when(result.getSchemas()).thenReturn(new 
HashMap<>(Collections.singletonMap("foo_schema", new ShardingSphereSchema())));
-        
when(result.getResourceMetaData().getStorageUnitMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
 TypedSPILoader.getService(DatabaseType.class, "FIXTURE")));
+        StorageUnit storageUnit = mock(StorageUnit.class);
+        
when(storageUnit.getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
+        
when(result.getResourceMetaData().getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         return result;
     }
     
@@ -218,7 +220,7 @@ class ContextManagerTest {
     @Test
     void assertAlterRuleConfiguration() {
         ResourceMetaData resourceMetaData = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
-        Map<String, DataSource> dataSources = Collections.singletonMap("ds_0", 
new MockedDataSource());
+        Map<String, DataSource> dataSources = 
Collections.singletonMap("foo_ds", new MockedDataSource());
         
when(resourceMetaData.getStorageNodeDataSources()).thenReturn(StorageResourceUtils.getStorageNodeDataSources(dataSources));
         StorageUnitMetaData storageUnitMetaData = 
mock(StorageUnitMetaData.class);
         
when(resourceMetaData.getStorageUnitMetaData()).thenReturn(storageUnitMetaData);
@@ -299,8 +301,6 @@ class ContextManagerTest {
     void assertReloadTable() {
         
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getDataSources())
                 .thenReturn(Collections.singletonMap("foo_ds", new 
MockedDataSource()));
-        
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
-                TypedSPILoader.getService(DatabaseType.class, "MySQL")));
         DatabaseMetaDataPersistService databaseMetaDataPersistService = 
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
         MetaDataPersistService persistService = 
mock(MetaDataPersistService.class);
         
when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);

Reply via email to