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

Reply via email to