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