This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang 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 85769ac2889 Remove databaseName on StorageUnit's constructor (#28645)
85769ac2889 is described below

commit 85769ac28895114822193f3b5c6fe0fb9a3636d9
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Oct 6 07:35:23 2023 +0800

    Remove databaseName on StorageUnit's constructor (#28645)
    
    * Remove databaseName on StorageUnit's constructor
    
    * Fix test cases
    
    * Fix test cases
    
    * Fix test cases
    
    * Refactor StorageNode
    
    * Refactor StorageNode
    
    * Refactor StorageNode
---
 .../metadata/database/ShardingSphereDatabase.java  |  6 ++--
 .../database/resource/ResourceMetaData.java        |  7 ++---
 .../database/resource/node/StorageNode.java        |  4 ---
 .../database/resource/unit/StorageUnit.java        | 14 +++------
 .../resource/unit/StorageUnitNodeMapUtils.java     |  5 ++--
 .../infra/metadata/ShardingSphereMetaDataTest.java |  2 +-
 .../single/route/SingleSQLRouterTest.java          |  4 +--
 .../transaction/rule/TransactionRuleTest.java      |  8 ++---
 .../context/ConfigurationContextManager.java       |  2 +-
 .../mode/manager/ContextManagerTest.java           |  5 ++--
 .../YamlDatabaseConfigurationImportExecutor.java   |  2 +-
 .../DefaultDatabaseMetaDataExecutorTest.java       |  1 -
 .../ral/updatable/ImportMetaDataUpdaterTest.java   |  4 +--
 .../UnregisterStorageUnitBackendHandlerTest.java   |  2 +-
 .../SelectInformationSchemataExecutor.java         |  2 +-
 .../SelectInformationSchemataExecutorTest.java     | 35 ++++++++++++++--------
 .../version/ShardingSphereProxyVersionTest.java    |  2 +-
 17 files changed, 52 insertions(+), 53 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
index 2af78880a55..941f270b12e 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabase.java
@@ -121,13 +121,13 @@ public final class ShardingSphereDatabase {
      */
     public static ShardingSphereDatabase create(final String name, final 
DatabaseType protocolType, final DatabaseConfiguration databaseConfig,
                                                 final 
Collection<ShardingSphereRule> rules, final Map<String, ShardingSphereSchema> 
schemas) {
-        ResourceMetaData resourceMetaData = createResourceMetaData(name, 
databaseConfig.getStorageResource(), 
databaseConfig.getDataSourcePoolPropertiesMap());
+        ResourceMetaData resourceMetaData = 
createResourceMetaData(databaseConfig.getStorageResource(), 
databaseConfig.getDataSourcePoolPropertiesMap());
         RuleMetaData ruleMetaData = new RuleMetaData(rules);
         return new ShardingSphereDatabase(name, protocolType, 
resourceMetaData, ruleMetaData, schemas);
     }
     
-    private static ResourceMetaData createResourceMetaData(final String 
databaseName, final StorageResource storageResource, final Map<String, 
DataSourcePoolProperties> propsMap) {
-        return new ResourceMetaData(databaseName, 
storageResource.getDataSources(), storageResource.getStorageUnitNodeMap(), 
propsMap);
+    private static ResourceMetaData createResourceMetaData(final 
StorageResource storageResource, final Map<String, DataSourcePoolProperties> 
propsMap) {
+        return new ResourceMetaData(storageResource.getDataSources(), 
storageResource.getStorageUnitNodeMap(), propsMap);
     }
     
     /**
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
index f2b2139c113..bd048bd62b7 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/ResourceMetaData.java
@@ -51,16 +51,15 @@ public final class ResourceMetaData {
                 Collectors.toMap(Entry::getKey, entry -> 
DataSourcePoolPropertiesCreator.create(entry.getValue()), (oldValue, 
currentValue) -> oldValue, LinkedHashMap::new));
         storageUnits = new LinkedHashMap<>();
         for (Entry<String, StorageNode> entry : storageNodes.entrySet()) {
-            storageUnits.put(entry.getKey(), new StorageUnit(null, 
entry.getValue(), dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName().getName())));
+            storageUnits.put(entry.getKey(), new StorageUnit(entry.getValue(), 
dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName().getName())));
         }
     }
     
-    public ResourceMetaData(final String databaseName, final 
Map<StorageNodeName, DataSource> dataSources,
-                            final Map<String, StorageNode> storageNodes, final 
Map<String, DataSourcePoolProperties> dataSourcePoolPropsMap) {
+    public ResourceMetaData(final Map<StorageNodeName, DataSource> 
dataSources, final Map<String, StorageNode> storageNodes, final Map<String, 
DataSourcePoolProperties> dataSourcePoolPropsMap) {
         this.dataSources = dataSources;
         storageUnits = new LinkedHashMap<>();
         for (Entry<String, StorageNode> entry : storageNodes.entrySet()) {
-            storageUnits.put(entry.getKey(), new StorageUnit(databaseName, 
entry.getValue(), dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName())));
+            storageUnits.put(entry.getKey(), new StorageUnit(entry.getValue(), 
dataSourcePoolPropsMap.get(entry.getKey()), 
dataSources.get(entry.getValue().getName())));
         }
     }
     
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
index fa836f44b44..4e0ef8136b3 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
@@ -32,8 +32,4 @@ public final class StorageNode {
     private final String url;
     
     private final String catalog;
-    
-    public StorageNode(final StorageNodeName name, final String url) {
-        this(name, url, null);
-    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnit.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnit.java
index ebaec412936..202a391d91f 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnit.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnit.java
@@ -26,10 +26,8 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory;
 import 
org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
-import org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager;
 
 import javax.sql.DataSource;
-import java.util.Collections;
 import java.util.Map;
 
 /**
@@ -48,21 +46,17 @@ public final class StorageUnit {
     
     private final ConnectionProperties connectionProperties;
     
-    public StorageUnit(final String databaseName, final StorageNode 
storageNode, final DataSourcePoolProperties dataSourcePoolProperties, final 
DataSource dataSource) {
+    public StorageUnit(final StorageNode storageNode, final 
DataSourcePoolProperties dataSourcePoolProperties, final DataSource dataSource) 
{
         this.storageNode = storageNode;
         this.dataSource = new CatalogSwitchableDataSource(dataSource, 
storageNode.getCatalog(), storageNode.getUrl());
         this.dataSourcePoolProperties = dataSourcePoolProperties;
         storageType = DatabaseTypeFactory.get(storageNode.getUrl());
-        boolean isDataSourceEnabled = 
!DataSourceStateManager.getInstance().getEnabledDataSources(databaseName, 
Collections.singletonMap(storageNode.getName().getName(), 
dataSource)).isEmpty();
-        connectionProperties = createConnectionProperties(isDataSourceEnabled, 
storageNode);
+        connectionProperties = createConnectionProperties(storageNode);
     }
     
-    private ConnectionProperties createConnectionProperties(final boolean 
isDataSourceEnabled, final StorageNode storageNode) {
-        if (!isDataSourceEnabled) {
-            return null;
-        }
+    private ConnectionProperties createConnectionProperties(final StorageNode 
storageNode) {
         Map<String, Object> standardProps = 
dataSourcePoolProperties.getConnectionPropertySynonyms().getStandardProperties();
         ConnectionPropertiesParser parser = 
DatabaseTypedSPILoader.getService(ConnectionPropertiesParser.class, 
storageType);
-        return parser.parse(standardProps.getOrDefault("url", "").toString(), 
standardProps.getOrDefault("username", "").toString(), 
storageNode.getCatalog());
+        return parser.parse(storageNode.getUrl(), 
standardProps.getOrDefault("username", "").toString(), 
storageNode.getCatalog());
     }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
index 8217a4ca848..67d885f6685 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapUtils.java
@@ -55,7 +55,8 @@ public final class StorageUnitNodeMapUtils {
     private static StorageNode fromDataSource(final String storageUnitName, 
final DataSource dataSource) {
         DataSourcePoolProperties props = 
DataSourcePoolPropertiesCreator.create(dataSource);
         String url = 
props.getConnectionPropertySynonyms().getStandardProperties().get("url").toString();
-        return new StorageNode(new StorageNodeName(storageUnitName), url);
+        boolean isInstanceConnectionAvailable = new 
DatabaseTypeRegistry(DatabaseTypeFactory.get(url)).getDialectDatabaseMetaData().isInstanceConnectionAvailable();
+        return createStorageNode(new StorageNodeName(storageUnitName), url, 
isInstanceConnectionAvailable);
     }
     
     /**
@@ -91,6 +92,6 @@ public final class StorageUnitNodeMapUtils {
     }
     
     private static StorageNode createStorageNode(final StorageNodeName 
storageNodeName, final String url, final boolean isInstanceConnectionAvailable) 
{
-        return isInstanceConnectionAvailable ? new 
StorageNode(storageNodeName, url, new 
StandardJdbcUrlParser().parse(url).getDatabase()) : new 
StorageNode(storageNodeName, url);
+        return new StorageNode(storageNodeName, url, 
isInstanceConnectionAvailable ? new 
StandardJdbcUrlParser().parse(url).getDatabase() : null);
     }
 }
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 648a04dd11e..912db360b9e 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
@@ -92,7 +92,7 @@ class ShardingSphereMetaDataTest {
         when(result.getResourceMetaData()).thenReturn(resourceMetaData);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_ds"), 
dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_ds", null), 
dataSourcePoolProps, dataSource);
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_db",
 storageUnit));
         when(result.getRuleMetaData()).thenReturn(new 
RuleMetaData(Collections.singleton(databaseResourceHeldRule)));
         return result;
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
index 115a0b4796f..bbf9cd5c88b 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
@@ -151,8 +151,8 @@ class SingleSQLRouterTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        storageUnits.put("ds_0", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0"), 
dataSourcePoolProps, new MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1"), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0", null), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1", null), 
dataSourcePoolProps, new MockedDataSource()));
         ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, 
RETURNS_DEEP_STUBS);
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         when(result.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
diff --git 
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
 
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
index 2119a6a44bf..9a9459b1dc1 100644
--- 
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
+++ 
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/TransactionRuleTest.java
@@ -102,8 +102,8 @@ class TransactionRuleTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        storageUnits.put("ds_0", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0"), 
dataSourcePoolProps, new MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1"), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0", null), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1", null), 
dataSourcePoolProps, new MockedDataSource()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
@@ -121,8 +121,8 @@ class TransactionRuleTest {
         Map<String, StorageUnit> storageUnits = new HashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        storageUnits.put("ds_0", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0"), 
dataSourcePoolProps, new MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1"), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0", null), 
dataSourcePoolProps, new MockedDataSource()));
+        storageUnits.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1", null), 
dataSourcePoolProps, new MockedDataSource()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
index bf51c6411a1..2e38aeafa27 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/context/ConfigurationContextManager.java
@@ -283,7 +283,7 @@ public final class ConfigurationContextManager {
         Map<String, DataSourcePoolProperties> propsMap = 
database.getResourceMetaData().getStorageUnits().entrySet().stream()
                 .collect(Collectors.toMap(Entry::getKey, entry -> 
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) -> 
currentValue, LinkedHashMap::new));
         return Collections.singletonMap(database.getName().toLowerCase(), new 
ShardingSphereDatabase(database.getName(), database.getProtocolType(),
-                new ResourceMetaData(database.getName(), newStorageNodes, 
newStorageUnitNodeMap, propsMap), database.getRuleMetaData(), 
database.getSchemas()));
+                new ResourceMetaData(newStorageNodes, newStorageUnitNodeMap, 
propsMap), database.getRuleMetaData(), database.getSchemas()));
     }
     
     private Map<StorageNodeName, DataSource> getNewStorageNodes(final 
Map<StorageNodeName, DataSource> currentStorageNodes, final SwitchingResource 
resource) {
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 bd434f5ced7..f1982c0f428 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
@@ -110,7 +110,7 @@ class ContextManagerTest {
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
         Map<String, StorageUnit> storageUnits = 
Collections.singletonMap("foo_ds",
-                new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, new MockedDataSource()));
+                new StorageUnit(new StorageNode(mock(StorageNodeName.class), 
"jdbc:mock://127.0.0.1/foo_db", null), dataSourcePoolProps, new 
MockedDataSource()));
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         return result;
     }
@@ -260,8 +260,7 @@ class ContextManagerTest {
         for (Entry<String, StorageNode> entry : storageUnitNodeMap.entrySet()) 
{
             DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
             
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-            storageUnits.put(entry.getKey(), new StorageUnit(
-                    "foo_db", storageUnitNodeMap.get(entry.getKey()), 
dataSourcePoolProps, storageNodeDataSourceMap.get(entry.getValue().getName())));
+            storageUnits.put(entry.getKey(), new 
StorageUnit(storageUnitNodeMap.get(entry.getKey()), dataSourcePoolProps, 
storageNodeDataSourceMap.get(entry.getValue().getName())));
         }
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
index 9dc1f225d24..a704756b65a 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/YamlDatabaseConfigurationImportExecutor.java
@@ -164,7 +164,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
                 
.getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnits();
         Map<String, StorageNode> toBeAddedStorageNode = 
StorageUnitNodeMapUtils.fromDataSourcePoolProperties(propsMap);
         for (Entry<String, DataSourcePoolProperties> entry : 
propsMap.entrySet()) {
-            storageUnits.put(entry.getKey(), new StorageUnit(databaseName, 
toBeAddedStorageNode.get(entry.getKey()), entry.getValue(), 
DataSourcePoolCreator.create(entry.getValue())));
+            storageUnits.put(entry.getKey(), new 
StorageUnit(toBeAddedStorageNode.get(entry.getKey()), entry.getValue(), 
DataSourcePoolCreator.create(entry.getValue())));
         }
     }
     
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
index b8e3c514848..af7a432d0c1 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/DefaultDatabaseMetaDataExecutorTest.java
@@ -125,7 +125,6 @@ class DefaultDatabaseMetaDataExecutorTest {
     
     private Connection mockConnection(final Map<String, String> 
expectedResultSetMap) throws SQLException {
         Connection result = mock(Connection.class, RETURNS_DEEP_STUBS);
-        
when(result.getMetaData().getURL()).thenReturn("jdbc:mysql://localhost:3306/foo_ds");
         ResultSet resultSet = mockResultSet(expectedResultSetMap);
         
when(result.prepareStatement(any(String.class)).executeQuery()).thenReturn(resultSet);
         return result;
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
index e065e8f6953..e7ec23188da 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdaterTest.java
@@ -123,8 +123,8 @@ class ImportMetaDataUpdaterTest {
         Map<String, StorageUnit> result = new LinkedHashMap<>(2, 1F);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        result.put("ds_0", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0"), 
dataSourcePoolProps, new MockedDataSource()));
-        result.put("ds_1", new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1"), 
dataSourcePoolProps, new MockedDataSource()));
+        result.put("ds_0", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_0", null), 
dataSourcePoolProps, new MockedDataSource()));
+        result.put("ds_1", new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/ds_1", null), 
dataSourcePoolProps, new MockedDataSource()));
         return result;
     }
     
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index 66a438fadff..cc2fdfdc2cb 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -88,7 +88,7 @@ class UnregisterStorageUnitBackendHandlerTest {
         resourceMetaData = mock(ResourceMetaData.class, RETURNS_DEEP_STUBS);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, new MockedDataSource());
+        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db", null), 
dataSourcePoolProps, new MockedDataSource());
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         contextManager = mockContextManager();
diff --git 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
index f75b822132f..b3a58752502 100644
--- 
a/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
+++ 
b/proxy/backend/type/mysql/src/main/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutor.java
@@ -96,7 +96,7 @@ public final class SelectInformationSchemataExecutor extends 
DefaultDatabaseMeta
     protected void preProcess(final String databaseName, final Map<String, 
Object> rows, final Map<String, String> alias) {
         ResourceMetaData resourceMetaData = 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData();
         Collection<String> catalogs = 
resourceMetaData.getStorageUnits().keySet()
-                .stream().map(each -> 
resourceMetaData.getStorageUnits().get(each).getConnectionProperties().getCatalog()).collect(Collectors.toSet());
+                .stream().map(each -> 
resourceMetaData.getStorageUnits().get(each).getStorageNode().getCatalog()).collect(Collectors.toSet());
         schemaNameAlias = alias.getOrDefault(SCHEMA_NAME, "");
         String rowValue = rows.getOrDefault(schemaNameAlias, "").toString();
         queryDatabase = !rowValue.isEmpty();
diff --git 
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
 
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
index 79b4e1ff189..cdbb1ee04d4 100644
--- 
a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
+++ 
b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
@@ -20,7 +20,9 @@ package 
org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.inf
 import 
org.apache.shardingsphere.authority.provider.database.model.privilege.DatabasePermittedPrivileges;
 import org.apache.shardingsphere.authority.rule.AuthorityRule;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
+import 
org.apache.shardingsphere.infra.database.core.metadata.database.DialectDatabaseMetaData;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
@@ -43,6 +45,7 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
+import org.mockito.MockedConstruction;
 import org.mockito.junit.jupiter.MockitoSettings;
 import org.mockito.quality.Strictness;
 
@@ -66,6 +69,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockConstruction;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(AutoMockExtension.class)
@@ -105,18 +109,25 @@ class SelectInformationSchemataExecutorTest {
         Map<String, String> expectedResultSetMap = new HashMap<>(2, 1F);
         expectedResultSetMap.put("SCHEMA_NAME", "foo_ds");
         expectedResultSetMap.put("DEFAULT_COLLATION_NAME", "utf8mb4");
-        ShardingSphereDatabase database = createDatabase(expectedResultSetMap);
-        ContextManager contextManager = mockContextManager(database);
-        
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
-        
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
-        
when(ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
-        SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
-        executor.execute(connectionSession);
-        assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
-        assertTrue(executor.getMergedResult().next());
-        assertThat(executor.getMergedResult().getValue(1, String.class), 
is("auth_db"));
-        assertThat(executor.getMergedResult().getValue(2, String.class), 
is("utf8mb4"));
-        assertFalse(executor.getMergedResult().next());
+        try (MockedConstruction<DatabaseTypeRegistry> ignored = 
mockConstruction(DatabaseTypeRegistry.class, (mock, mockContext) -> {
+            DialectDatabaseMetaData dialectDatabaseMetaData = 
mock(DialectDatabaseMetaData.class);
+            
when(dialectDatabaseMetaData.isInstanceConnectionAvailable()).thenReturn(true);
+            
when(mock.getDialectDatabaseMetaData()).thenReturn(dialectDatabaseMetaData);
+        })) {
+            ShardingSphereDatabase database = 
createDatabase(expectedResultSetMap);
+            ContextManager contextManager = mockContextManager(database);
+            
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+            
when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+            
when(ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
+            SelectInformationSchemataExecutor executor = new 
SelectInformationSchemataExecutor(statement, sql, Collections.emptyList());
+            executor.execute(connectionSession);
+            assertThat(executor.getQueryResultMetaData().getColumnCount(), 
is(2));
+            assertTrue(executor.getMergedResult().next());
+            assertThat(executor.getMergedResult().getValue(1, String.class), 
is("auth_db"));
+            assertThat(executor.getMergedResult().getValue(2, String.class), 
is("utf8mb4"));
+            assertFalse(executor.getMergedResult().next());
+            assertFalse(executor.getMergedResult().next());
+        }
     }
     
     @Test
diff --git 
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
 
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
index 4e0e48e543c..ec052576440 100644
--- 
a/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
+++ 
b/proxy/bootstrap/src/test/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersionTest.java
@@ -86,7 +86,7 @@ class ShardingSphereProxyVersionTest {
         DataSource dataSource = createDataSource(databaseProductName, 
databaseProductVersion);
         DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
         
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Collections.emptyMap());
-        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit(new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db", null), 
dataSourcePoolProps, dataSource);
         
when(result.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds", 
storageUnit));
         return result;
     }


Reply via email to