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 00e2c08ab88 Remove DatabaseTypeEngine.getStorageType with data sources 
(#28644)
00e2c08ab88 is described below

commit 00e2c08ab88769488184924ebcb1c9c0cc602622
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Oct 5 19:03:00 2023 +0800

    Remove DatabaseTypeEngine.getStorageType with data sources (#28644)
    
    * Remove DatabaseTypeEngine.getStorageType with data sources
    
    * Refactor StorageUnit.storageType
    
    * Fix test cases
    
    * Fix test cases
---
 .../infra/database/DatabaseTypeEngine.java         | 31 ++++++++++++++++------
 .../database/resource/unit/StorageUnit.java        |  8 ++----
 .../infra/database/DatabaseTypeEngineTest.java     | 29 +++++++-------------
 .../infra/metadata/ShardingSphereMetaDataTest.java |  3 ++-
 .../globalclock/core/rule/GlobalClockRule.java     |  3 +--
 .../SingleRuleConfigurationDecorator.java          |  2 +-
 .../shardingsphere/single/rule/SingleRule.java     |  2 +-
 .../single/route/SingleSQLRouterTest.java          |  5 ++--
 .../type/database/DatabaseTimestampService.java    |  7 +++--
 .../transaction/rule/TransactionRuleTest.java      |  9 ++++---
 .../mode/manager/ContextManagerTest.java           |  2 +-
 .../ral/updatable/ImportMetaDataUpdaterTest.java   |  5 ++--
 .../UnregisterStorageUnitBackendHandlerTest.java   |  3 ++-
 .../version/ShardingSphereProxyVersionTest.java    |  3 ++-
 14 files changed, 58 insertions(+), 54 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
index 15ebbdf3ce7..4fcdd47cfe9 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngine.java
@@ -54,7 +54,12 @@ public final class DatabaseTypeEngine {
      * @return protocol type
      */
     public static DatabaseType getProtocolType(final String databaseName, 
final DatabaseConfiguration databaseConfig, final ConfigurationProperties 
props) {
-        return findConfiguredDatabaseType(props).orElseGet(() -> 
getStorageType(DataSourceStateManager.getInstance().getEnabledDataSources(databaseName,
 databaseConfig)));
+        Optional<DatabaseType> configuredDatabaseType = 
findConfiguredDatabaseType(props);
+        if (configuredDatabaseType.isPresent()) {
+            return configuredDatabaseType.get();
+        }
+        Collection<DataSource> enabledDataSources = 
DataSourceStateManager.getInstance().getEnabledDataSources(databaseName, 
databaseConfig);
+        return enabledDataSources.isEmpty() ? getDefaultStorageType() : 
getStorageType(enabledDataSources.iterator().next());
     }
     
     /**
@@ -66,7 +71,11 @@ public final class DatabaseTypeEngine {
      */
     public static DatabaseType getProtocolType(final Map<String, ? extends 
DatabaseConfiguration> databaseConfigs, final ConfigurationProperties props) {
         Optional<DatabaseType> configuredDatabaseType = 
findConfiguredDatabaseType(props);
-        return configuredDatabaseType.orElseGet(() -> 
getStorageType(getEnabledDataSources(databaseConfigs).values()));
+        if (configuredDatabaseType.isPresent()) {
+            return configuredDatabaseType.get();
+        }
+        Map<String, DataSource> enabledDataSources = 
getEnabledDataSources(databaseConfigs);
+        return enabledDataSources.isEmpty() ? getDefaultStorageType() : 
getStorageType(enabledDataSources.values().iterator().next());
     }
     
     private static Optional<DatabaseType> findConfiguredDatabaseType(final 
ConfigurationProperties props) {
@@ -101,18 +110,24 @@ public final class DatabaseTypeEngine {
     /**
      * Get storage type.
      *
-     * @param dataSources data sources
+     * @param dataSource data source
      * @return storage type
+     * @throws SQLWrapperException SQL wrapper exception
      */
-    public static DatabaseType getStorageType(final Collection<DataSource> 
dataSources) {
-        return dataSources.isEmpty() ? 
TypedSPILoader.getService(DatabaseType.class, DEFAULT_DATABASE_TYPE) : 
getStorageType(dataSources.iterator().next());
-    }
-    
-    private static DatabaseType getStorageType(final DataSource dataSource) {
+    public static DatabaseType getStorageType(final DataSource dataSource) {
         try (Connection connection = dataSource.getConnection()) {
             return DatabaseTypeFactory.get(connection.getMetaData().getURL());
         } catch (final SQLException ex) {
             throw new SQLWrapperException(ex);
         }
     }
+    
+    /**
+     * Get default storage type.
+     *
+     * @return default storage type
+     */
+    public static DatabaseType getDefaultStorageType() {
+        return TypedSPILoader.getService(DatabaseType.class, 
DEFAULT_DATABASE_TYPE);
+    }
 }
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 05c9be7e8b8..ebaec412936 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
@@ -18,11 +18,11 @@
 package org.apache.shardingsphere.infra.metadata.database.resource.unit;
 
 import lombok.Getter;
-import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
 import 
org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties;
 import 
org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+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;
@@ -52,15 +52,11 @@ public final class StorageUnit {
         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();
-        storageType = createStorageType(isDataSourceEnabled);
         connectionProperties = createConnectionProperties(isDataSourceEnabled, 
storageNode);
     }
     
-    private DatabaseType createStorageType(final boolean isDataSourceEnabled) {
-        return DatabaseTypeEngine.getStorageType(isDataSourceEnabled ? 
Collections.singleton(dataSource) : Collections.emptyList());
-    }
-    
     private ConnectionProperties createConnectionProperties(final boolean 
isDataSourceEnabled, final StorageNode storageNode) {
         if (!isDataSourceEnabled) {
             return null;
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
index b1709395bd3..6c62d5db197 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/DatabaseTypeEngineTest.java
@@ -24,8 +24,8 @@ import 
org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
 import 
org.apache.shardingsphere.infra.database.postgresql.type.PostgreSQLDatabaseType;
-import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.wrapper.SQLWrapperException;
+import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.apache.shardingsphere.test.util.PropertiesBuilder;
@@ -35,8 +35,6 @@ import org.junit.jupiter.api.Test;
 import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.SQLException;
-import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Properties;
 
@@ -76,29 +74,20 @@ class DatabaseTypeEngineTest {
     }
     
     @Test
-    void assertGetStorageTypeWithEmptyDataSources() {
-        
assertThat(DatabaseTypeEngine.getStorageType(Collections.emptyList()).getType(),
 is("MySQL"));
-    }
-    
-    @Test
-    void assertGetStorageTypeWithDataSources() throws SQLException {
-        Collection<DataSource> dataSources = 
Arrays.asList(mockDataSource(TypedSPILoader.getService(DatabaseType.class, 
"H2")),
-                mockDataSource(TypedSPILoader.getService(DatabaseType.class, 
"H2")));
-        assertThat(DatabaseTypeEngine.getStorageType(dataSources).getType(), 
is("H2"));
-    }
-    
-    @Test
-    void assertGetStorageTypeWithDifferentDataSourceTypes() throws 
SQLException {
-        Collection<DataSource> dataSources = 
Arrays.asList(mockDataSource(TypedSPILoader.getService(DatabaseType.class, 
"H2")),
-                mockDataSource(TypedSPILoader.getService(DatabaseType.class, 
"MySQL")));
-        assertThat(DatabaseTypeEngine.getStorageType(dataSources).getType(), 
is("H2"));
+    void assertGetStorageType() throws SQLException {
+        
assertThat(DatabaseTypeEngine.getStorageType(mockDataSource(TypedSPILoader.getService(DatabaseType.class,
 "H2"))).getType(), is("H2"));
     }
     
     @Test
     void assertGetStorageTypeWhenGetConnectionError() throws SQLException {
         DataSource dataSource = mock(DataSource.class);
         when(dataSource.getConnection()).thenThrow(SQLException.class);
-        assertThrows(SQLWrapperException.class, () -> 
DatabaseTypeEngine.getStorageType(Collections.singleton(dataSource)));
+        assertThrows(SQLWrapperException.class, () -> 
DatabaseTypeEngine.getStorageType(dataSource));
+    }
+    
+    @Test
+    void assertGetDefaultStorageTypeWithEmptyDataSources() {
+        assertThat(DatabaseTypeEngine.getDefaultStorageType().getType(), 
is("MySQL"));
     }
     
     private DataSource mockDataSource(final DatabaseType databaseType) throws 
SQLException {
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 9ab0a33b436..648a04dd11e 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.datasource.pool.props.domain.DataSourcePo
 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.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
@@ -91,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_ds"), 
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/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
index 0e1e867ea3e..3da38433822 100644
--- 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
+++ 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
@@ -29,7 +29,6 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.transaction.spi.TransactionHook;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Properties;
@@ -52,7 +51,7 @@ public final class GlobalClockRule implements GlobalRule {
     
     private Properties createProperties(final Map<String, 
ShardingSphereDatabase> databases) {
         Properties result = new Properties();
-        DatabaseType storageType = 
findStorageType(databases.values()).orElseGet(() -> 
DatabaseTypeEngine.getStorageType(Collections.emptyList()));
+        DatabaseType storageType = 
findStorageType(databases.values()).orElseGet(DatabaseTypeEngine::getDefaultStorageType);
         result.setProperty("trunkType", 
storageType.getTrunkDatabaseType().orElse(storageType).getType());
         result.setProperty("enabled", 
String.valueOf(configuration.isEnabled()));
         result.setProperty("type", configuration.getType());
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
index e0a596a4435..3f427d2d94b 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decorator/SingleRuleConfigurationDecorator.java
@@ -63,7 +63,7 @@ public final class SingleRuleConfigurationDecorator 
implements RuleConfiguration
         }
         Map<String, DataSource> enabledDataSources = 
DataSourceStateManager.getInstance().getEnabledDataSources(databaseName, 
dataSources);
         Map<String, DataSource> aggregatedDataSources = 
SingleTableLoadUtils.getAggregatedDataSourceMap(enabledDataSources, builtRules);
-        DatabaseType databaseType = 
DatabaseTypeEngine.getStorageType(enabledDataSources.values());
+        DatabaseType databaseType = enabledDataSources.isEmpty() ? 
DatabaseTypeEngine.getDefaultStorageType() : 
DatabaseTypeEngine.getStorageType(enabledDataSources.values().iterator().next());
         Collection<String> excludedTables = 
SingleTableLoadUtils.getExcludedTables(builtRules);
         Map<String, Collection<DataNode>> actualDataNodes = 
SingleTableDataNodeLoader.load(databaseName, databaseType, 
aggregatedDataSources, excludedTables);
         Collection<DataNode> configuredDataNodes = 
SingleTableLoadUtils.convertToDataNodes(databaseName, databaseType, 
splitTables);
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
index 9394b796bcb..871e2ce9172 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/rule/SingleRule.java
@@ -79,7 +79,7 @@ public final class SingleRule implements DatabaseRule, 
DataNodeContainedRule, Ta
         Map<String, DataSource> enabledDataSources = 
DataSourceStateManager.getInstance().getEnabledDataSources(databaseName, 
dataSourceMap);
         Map<String, DataSource> aggregateDataSourceMap = 
SingleTableLoadUtils.getAggregatedDataSourceMap(enabledDataSources, builtRules);
         dataSourceNames = aggregateDataSourceMap.keySet();
-        databaseType = 
DatabaseTypeEngine.getStorageType(enabledDataSources.values());
+        databaseType = enabledDataSources.isEmpty() ? 
DatabaseTypeEngine.getDefaultStorageType() : 
DatabaseTypeEngine.getStorageType(enabledDataSources.values().iterator().next());
         singleTableDataNodes = SingleTableDataNodeLoader.load(databaseName, 
databaseType, aggregateDataSourceMap, builtRules, configuration.getTables());
         singleTableDataNodes.forEach((key, value) -> 
tableNamesMapper.put(value.iterator().next().getTableName()));
     }
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 89ab0a1c04e..115a0b4796f 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
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 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.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -150,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
+        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()));
         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/time-service/type/database/src/main/java/org/apache/shardingsphere/timeservice/type/database/DatabaseTimestampService.java
 
b/kernel/time-service/type/database/src/main/java/org/apache/shardingsphere/timeservice/type/database/DatabaseTimestampService.java
index 5dea456923c..375f89607f1 100644
--- 
a/kernel/time-service/type/database/src/main/java/org/apache/shardingsphere/timeservice/type/database/DatabaseTimestampService.java
+++ 
b/kernel/time-service/type/database/src/main/java/org/apache/shardingsphere/timeservice/type/database/DatabaseTimestampService.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.timeservice.type.database;
 
-import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.DatabaseTypeEngine;
-import 
org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolCreator;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import 
org.apache.shardingsphere.infra.datasource.pool.creator.DataSourcePoolCreator;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
 import org.apache.shardingsphere.timeservice.spi.TimestampService;
 import 
org.apache.shardingsphere.timeservice.type.database.exception.DatetimeLoadingException;
@@ -32,7 +32,6 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Timestamp;
-import java.util.Collections;
 import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.stream.Collectors;
@@ -50,7 +49,7 @@ public final class DatabaseTimestampService implements 
TimestampService {
     public void init(final Properties props) {
         dataSource = DataSourcePoolCreator.create(new 
YamlDataSourceConfigurationSwapper().swapToDataSourcePoolProperties(
                 props.entrySet().stream().collect(Collectors.toMap(entry -> 
entry.getKey().toString(), Entry::getValue))));
-        storageType = 
DatabaseTypeEngine.getStorageType(Collections.singleton(dataSource));
+        storageType = DatabaseTypeEngine.getStorageType(dataSource);
     }
     
     @Override
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 26c60d314a7..2119a6a44bf 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
@@ -21,6 +21,7 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 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.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
 import org.apache.shardingsphere.transaction.api.TransactionType;
@@ -101,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
+        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()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
@@ -120,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
-        storageUnits.put("ds_1", new StorageUnit("foo_db", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource()));
+        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()));
         ResourceMetaData result = mock(ResourceMetaData.class, 
RETURNS_DEEP_STUBS);
         when(result.getStorageUnits()).thenReturn(storageUnits);
         return result;
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 40618dfe302..bd434f5ced7 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", mock(StorageNode.class, 
RETURNS_DEEP_STUBS), dataSourcePoolProps, new MockedDataSource()));
+                new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, new MockedDataSource()));
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         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 cabea9fe30c..e065e8f6953 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
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereColumn;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereIndex;
@@ -122,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", mock(StorageNode.class, 
RETURNS_DEEP_STUBS), dataSourcePoolProps, new MockedDataSource()));
-        result.put("ds_1", new StorageUnit("foo_db", mock(StorageNode.class, 
RETURNS_DEEP_STUBS), dataSourcePoolProps, new MockedDataSource()));
+        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()));
         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 595399d049a..66a438fadff 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
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
 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.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -87,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, new 
MockedDataSource());
+        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, new MockedDataSource());
         
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
         when(database.getResourceMetaData()).thenReturn(resourceMetaData);
         contextManager = mockContextManager();
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 af353c44f4b..4e0e48e543c 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
@@ -23,6 +23,7 @@ import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
 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.node.StorageNode;
+import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -85,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", 
mock(StorageNode.class, RETURNS_DEEP_STUBS), dataSourcePoolProps, dataSource);
+        StorageUnit storageUnit = new StorageUnit("foo_db", new 
StorageNode(mock(StorageNodeName.class), "jdbc:mock://127.0.0.1/foo_db"), 
dataSourcePoolProps, dataSource);
         
when(result.getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds", 
storageUnit));
         return result;
     }

Reply via email to