This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 bea4c9ad867 Refactor ShardingSphereMetaData (#28170)
bea4c9ad867 is described below
commit bea4c9ad867ece0cdfc8b8aedaf6f5fbcbc38be7
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Aug 18 23:16:26 2023 +0800
Refactor ShardingSphereMetaData (#28170)
* Refactor ShardingSphereMetaData
* Refactor ShardingSphereMetaData
---
.../apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java | 2 +-
.../shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index f0c73d75af9..6b01992d6ee 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -123,6 +123,6 @@ public final class ShardingSphereMetaData {
database.getRuleMetaData().findRules(ResourceHeldRule.class).forEach(each ->
each.closeStaleResource(databaseName));
database.getRuleMetaData().findSingleRule(StaticDataSourceContainedRule.class).ifPresent(StaticDataSourceContainedRule::cleanStorageNodeDataSources);
Optional.ofNullable(database.getResourceMetaData())
- .ifPresent(optional ->
optional.getStorageUnitMetaData().getDataSources().values().forEach(each ->
database.getResourceMetaData().close(each)));
+ .ifPresent(optional ->
optional.getStorageUnitMetaData().getStorageUnits().values().forEach(each ->
database.getResourceMetaData().close(each.getDataSource())));
}
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
index 4ddea502a4d..da1846beea8 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaDataTest.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
+import
org.apache.shardingsphere.infra.metadata.database.resource.storage.StorageUnit;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
@@ -89,7 +90,9 @@ class ShardingSphereMetaDataTest {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class);
when(result.getName()).thenReturn("foo_db");
when(result.getResourceMetaData()).thenReturn(resourceMetaData);
-
when(result.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_db",
dataSource));
+ StorageUnit storageUnit = mock(StorageUnit.class);
+ when(storageUnit.getDataSource()).thenReturn(dataSource);
+
when(result.getResourceMetaData().getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_db",
storageUnit));
when(result.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(databaseResourceHeldRule)));
return result;
}