This is an automated email from the ASF dual-hosted git repository.
panjuan 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 70ea674e3fd Refactor ContextManager (#28195)
70ea674e3fd is described below
commit 70ea674e3fd14091b6bd5bf743f6af73ce3cab2b
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Aug 21 12:34:28 2023 +0800
Refactor ContextManager (#28195)
---
.../java/org/apache/shardingsphere/mode/manager/ContextManager.java | 3 ++-
.../org/apache/shardingsphere/mode/manager/ContextManagerTest.java | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 63ee9562f8a..d502ee0580f 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -181,7 +181,8 @@ public final class ContextManager implements AutoCloseable {
private ShardingSphereSchema loadSchema(final String databaseName, final
String schemaName, final String dataSourceName) throws SQLException {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
database.reloadRules(MutableDataNodeRule.class);
- GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
database.getResourceMetaData().getStorageUnitMetaData().getStorageTypes(),
+ GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
+ Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().get(dataSourceName).getStorageType()),
Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().get(dataSourceName).getDataSource()),
database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
ShardingSphereSchema result =
GenericSchemaBuilder.build(material).get(schemaName);
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 5a7c916780d..26e2acaad8b 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
@@ -285,6 +285,8 @@ class ContextManagerTest {
@Test
void assertReloadSchema() {
when(metaDataContexts.getMetaData().getDatabase("foo_db").getName()).thenReturn("foo_db");
+
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData()
+
.getStorageUnitMetaData().getStorageUnits().get("foo_ds").getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
MetaDataPersistService persistService =
mock(MetaDataPersistService.class);
when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);