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