This is an automated email from the ASF dual-hosted git repository.
totalo 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 576e75b7773 Refactor StorageNode and add StorageNodeName (#28612)
576e75b7773 is described below
commit 576e75b777350eb6d2124cd31944647c0f60d6bf
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Sep 28 02:05:38 2023 +0800
Refactor StorageNode and add StorageNodeName (#28612)
---
.../DataSourceGeneratedDatabaseConfiguration.java | 9 +--
.../database/resource/ResourceMetaData.java | 6 +-
.../database/resource/StorageResource.java | 10 +--
.../database/resource/node/StorageNode.java | 24 +++----
.../{StorageNode.java => StorageNodeName.java} | 6 +-
.../database/resource/node/StorageNodeUtils.java | 6 +-
.../database/resource/unit/StorageUnit.java | 33 +++++----
.../resource/unit/StorageUnitMetaData.java | 4 +-
.../resource/unit/StorageUnitNodeMapper.java | 8 ---
.../resource/unit/StorageUnitNodeMapperUtils.java | 21 +++---
...taSourceGeneratedDatabaseConfigurationTest.java | 4 +-
...ataSourceProvidedDatabaseConfigurationTest.java | 4 +-
.../datasource/ShardingSphereDataSourceTest.java | 6 +-
.../metadata/persist/MetaDataPersistService.java | 6 +-
.../persist/NewMetaDataPersistService.java | 6 +-
.../context/ConfigurationContextManager.java | 12 ++--
.../manager/switcher/NewResourceSwitchManager.java | 30 ++++----
.../manager/switcher/ResourceSwitchManager.java | 83 ++++++++++++----------
.../mode/manager/ContextManagerTest.java | 6 +-
.../switcher/ResourceSwitchManagerTest.java | 8 +--
.../manager/switcher/SwitchingResourceTest.java | 6 +-
.../swapper/YamlProxyConfigurationSwapperTest.java | 4 +-
22 files changed, 151 insertions(+), 151 deletions(-)
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
index a441a0883ef..0c450f59942 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfiguration.java
@@ -26,7 +26,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourceP
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapperUtils;
-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.StorageUnitNodeMapper;
import javax.sql.DataSource;
@@ -56,10 +56,11 @@ public final class DataSourceGeneratedDatabaseConfiguration
implements DatabaseC
storageResource = new
StorageResource(getStorageNodeDataSourceMap(mappers), mappers);
}
- private Map<StorageNode, DataSource> getStorageNodeDataSourceMap(final
Map<String, StorageUnitNodeMapper> mappers) {
- Map<StorageNode, DataSource> result = new
LinkedHashMap<>(mappers.size(), 1F);
+ private Map<StorageNodeName, DataSource> getStorageNodeDataSourceMap(final
Map<String, StorageUnitNodeMapper> mappers) {
+ Map<StorageNodeName, DataSource> result = new
LinkedHashMap<>(mappers.size(), 1F);
for (Entry<String, StorageUnitNodeMapper> entry : mappers.entrySet()) {
- result.computeIfAbsent(entry.getValue().getStorageNode(), key ->
DataSourcePoolCreator.create(entry.getKey(),
dataSourcePoolPropertiesMap.get(entry.getKey()), true, result.values()));
+ result.computeIfAbsent(entry.getValue().getStorageNode().getName(),
+ key -> DataSourcePoolCreator.create(entry.getKey(),
dataSourcePoolPropertiesMap.get(entry.getKey()), true, result.values()));
}
return result;
}
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 e96ce55845d..7564aa9c395 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
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.database.core.connector.ConnectionPropert
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
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.metadata.database.resource.node.StorageNodeName;
import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeUtils;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitMetaData;
@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
@Getter
public final class ResourceMetaData {
- private final Map<StorageNode, DataSource> dataSourceMap;
+ private final Map<StorageNodeName, DataSource> dataSourceMap;
private final StorageUnitMetaData storageUnitMetaData;
@@ -54,7 +54,7 @@ public final class ResourceMetaData {
StorageUnitNodeMapperUtils.fromDataSources(dataSources));
}
- public ResourceMetaData(final String databaseName, final Map<StorageNode,
DataSource> dataSourceMap,
+ public ResourceMetaData(final String databaseName, final
Map<StorageNodeName, DataSource> dataSourceMap,
final Map<String, StorageUnitNodeMapper>
storageUnitNodeMappers, final Map<String, DataSourcePoolProperties> propsMap) {
this.dataSourceMap = dataSourceMap;
storageUnitMetaData = new StorageUnitMetaData(databaseName,
dataSourceMap, propsMap, storageUnitNodeMappers);
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
index b46f82d9799..d5f960f63bf 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/StorageResource.java
@@ -20,6 +20,7 @@ package
org.apache.shardingsphere.infra.metadata.database.resource;
import lombok.Getter;
import
org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSource;
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.StorageUnitNodeMapper;
import javax.sql.DataSource;
@@ -33,13 +34,13 @@ import java.util.Map.Entry;
@Getter
public final class StorageResource {
- private final Map<StorageNode, DataSource> dataSourceMap;
+ private final Map<StorageNodeName, DataSource> dataSourceMap;
private final Map<String, StorageUnitNodeMapper> storageUnitNodeMappers;
private final Map<String, DataSource> wrappedDataSources;
- public StorageResource(final Map<StorageNode, DataSource> dataSourceMap,
final Map<String, StorageUnitNodeMapper> storageUnitNodeMappers) {
+ public StorageResource(final Map<StorageNodeName, DataSource>
dataSourceMap, final Map<String, StorageUnitNodeMapper> storageUnitNodeMappers)
{
this.dataSourceMap = dataSourceMap;
this.storageUnitNodeMappers = storageUnitNodeMappers;
wrappedDataSources = createWrappedDataSources();
@@ -48,9 +49,10 @@ public final class StorageResource {
private Map<String, DataSource> createWrappedDataSources() {
Map<String, DataSource> result = new
LinkedHashMap<>(storageUnitNodeMappers.size(), 1F);
for (Entry<String, StorageUnitNodeMapper> entry :
storageUnitNodeMappers.entrySet()) {
- DataSource dataSource =
dataSourceMap.get(entry.getValue().getStorageNode());
+ StorageNode storageNode = entry.getValue().getStorageNode();
+ DataSource dataSource = dataSourceMap.get(storageNode.getName());
if (null != dataSource) {
- result.put(entry.getKey(), new
CatalogSwitchableDataSource(dataSource, entry.getValue().getCatalog(),
entry.getValue().getUrl()));
+ result.put(entry.getKey(), new
CatalogSwitchableDataSource(dataSource, storageNode.getCatalog(),
storageNode.getUrl()));
}
}
return result;
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 f967ddc99e0..98e0b033729 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
@@ -17,31 +17,27 @@
package org.apache.shardingsphere.infra.metadata.database.resource.node;
-import com.google.common.base.Objects;
import lombok.Getter;
-import lombok.RequiredArgsConstructor;
/**
* Storage node.
*/
-@RequiredArgsConstructor
@Getter
public final class StorageNode {
- private final String name;
+ private final StorageNodeName name;
- @Override
- public boolean equals(final Object obj) {
- return obj instanceof StorageNode && ((StorageNode)
obj).name.equalsIgnoreCase(name);
- }
+ private final String url;
+
+ private final String catalog;
- @Override
- public int hashCode() {
- return Objects.hashCode(name.toUpperCase());
+ public StorageNode(final String name, final String url) {
+ this(name, url, null);
}
- @Override
- public String toString() {
- return name;
+ public StorageNode(final String name, final String url, final String
catalog) {
+ this.name = new StorageNodeName(name);
+ this.url = url;
+ this.catalog = catalog;
}
}
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/StorageNodeName.java
similarity index 89%
copy from
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNode.java
copy to
infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeName.java
index f967ddc99e0..ec6941710ba 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/StorageNodeName.java
@@ -22,17 +22,17 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
- * Storage node.
+ * Storage node name.
*/
@RequiredArgsConstructor
@Getter
-public final class StorageNode {
+public final class StorageNodeName {
private final String name;
@Override
public boolean equals(final Object obj) {
- return obj instanceof StorageNode && ((StorageNode)
obj).name.equalsIgnoreCase(name);
+ return obj instanceof StorageNodeName && ((StorageNodeName)
obj).name.equalsIgnoreCase(name);
}
@Override
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeUtils.java
index 3ed88fdbdfe..3b6fca81e8d 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/node/StorageNodeUtils.java
@@ -38,8 +38,8 @@ public final class StorageNodeUtils {
* @param dataSources data sources
* @return storage node data sources
*/
- public static Map<StorageNode, DataSource> getStorageNodeDataSources(final
Map<String, DataSource> dataSources) {
- return dataSources.entrySet().stream()
- .collect(Collectors.toMap(entry -> new
StorageNode(entry.getKey()), Entry::getValue, (oldValue, currentValue) ->
currentValue, () -> new LinkedHashMap<>(dataSources.size(), 1F)));
+ public static Map<StorageNodeName, DataSource>
getStorageNodeDataSources(final Map<String, DataSource> dataSources) {
+ return dataSources.entrySet().stream().collect(
+ Collectors.toMap(entry -> new StorageNodeName(entry.getKey()),
Entry::getValue, (oldValue, currentValue) -> currentValue, () -> new
LinkedHashMap<>(dataSources.size(), 1F)));
}
}
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 4d5496e3ac3..75864e6b474 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
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.CatalogSwitchableDataSour
import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
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.metadata.database.resource.node.StorageNodeName;
import org.apache.shardingsphere.infra.state.datasource.DataSourceStateManager;
import javax.sql.DataSource;
@@ -53,24 +54,25 @@ public final class StorageUnit {
private final ConnectionProperties connectionProperties;
- public StorageUnit(final String databaseName, final Map<StorageNode,
DataSource> storageNodeDataSources,
+ public StorageUnit(final String databaseName, final Map<StorageNodeName,
DataSource> storageNodeDataSources,
final DataSourcePoolProperties props, final
StorageUnitNodeMapper unitNodeMapper) {
this.dataSourcePoolProperties = props;
this.unitNodeMapper = unitNodeMapper;
dataSource = getStorageUnitDataSource(storageNodeDataSources,
unitNodeMapper);
- Map<StorageNode, DataSource> enabledStorageNodeDataSources =
getEnabledStorageNodeDataSources(databaseName, storageNodeDataSources);
+ Map<StorageNodeName, DataSource> enabledStorageNodeDataSources =
getEnabledStorageNodeDataSources(databaseName, storageNodeDataSources);
storageType = createStorageType(enabledStorageNodeDataSources,
unitNodeMapper);
connectionProperties =
createConnectionProperties(enabledStorageNodeDataSources, unitNodeMapper,
storageType).orElse(null);
}
- private DataSource getStorageUnitDataSource(final Map<StorageNode,
DataSource> storageNodeDataSources, final StorageUnitNodeMapper unitNodeMapper)
{
- DataSource dataSource =
storageNodeDataSources.get(unitNodeMapper.getStorageNode());
- return new CatalogSwitchableDataSource(dataSource,
unitNodeMapper.getCatalog(), unitNodeMapper.getUrl());
+ private DataSource getStorageUnitDataSource(final Map<StorageNodeName,
DataSource> storageNodeDataSources, final StorageUnitNodeMapper mapper) {
+ StorageNode storageNode = mapper.getStorageNode();
+ DataSource dataSource =
storageNodeDataSources.get(storageNode.getName());
+ return new CatalogSwitchableDataSource(dataSource,
storageNode.getCatalog(), storageNode.getUrl());
}
- private Map<StorageNode, DataSource>
getEnabledStorageNodeDataSources(final String databaseName, final
Map<StorageNode, DataSource> storageNodeDataSources) {
+ private Map<StorageNodeName, DataSource>
getEnabledStorageNodeDataSources(final String databaseName, final
Map<StorageNodeName, DataSource> storageNodeDataSources) {
Map<String, DataSource> toBeCheckedDataSources = new
LinkedHashMap<>(storageNodeDataSources.size(), 1F);
- for (Entry<StorageNode, DataSource> entry :
storageNodeDataSources.entrySet()) {
+ for (Entry<StorageNodeName, DataSource> entry :
storageNodeDataSources.entrySet()) {
toBeCheckedDataSources.put(entry.getKey().getName(),
entry.getValue());
}
Map<String, DataSource> enabledDataSources =
DataSourceStateManager.getInstance().getEnabledDataSources(databaseName,
toBeCheckedDataSources);
@@ -78,20 +80,21 @@ public final class StorageUnit {
.filter(entry ->
enabledDataSources.containsKey(entry.getKey().getName())).collect(Collectors.toMap(Entry::getKey,
Entry::getValue));
}
- private DatabaseType createStorageType(final Map<StorageNode, DataSource>
enabledStorageNodeDataSources, final StorageUnitNodeMapper unitNodeMapper) {
- return
DatabaseTypeEngine.getStorageType(enabledStorageNodeDataSources.containsKey(unitNodeMapper.getStorageNode())
- ?
Collections.singleton(enabledStorageNodeDataSources.get(unitNodeMapper.getStorageNode()))
+ private DatabaseType createStorageType(final Map<StorageNodeName,
DataSource> enabledStorageNodeDataSources, final StorageUnitNodeMapper
unitNodeMapper) {
+ return
DatabaseTypeEngine.getStorageType(enabledStorageNodeDataSources.containsKey(unitNodeMapper.getStorageNode().getName())
+ ?
Collections.singleton(enabledStorageNodeDataSources.get(unitNodeMapper.getStorageNode().getName()))
: Collections.emptyList());
}
- private Optional<ConnectionProperties> createConnectionProperties(final
Map<StorageNode, DataSource> enabledStorageNodeDataSources,
- final
StorageUnitNodeMapper unitNodeMapper, final DatabaseType storageType) {
- if
(!enabledStorageNodeDataSources.containsKey(unitNodeMapper.getStorageNode())) {
+ private Optional<ConnectionProperties> createConnectionProperties(final
Map<StorageNodeName, DataSource> enabledStorageNodeDataSources,
+ final
StorageUnitNodeMapper mapper, final DatabaseType storageType) {
+ StorageNode storageNode = mapper.getStorageNode();
+ if (!enabledStorageNodeDataSources.containsKey(storageNode.getName()))
{
return Optional.empty();
}
Map<String, Object> standardProps =
DataSourcePoolPropertiesCreator.create(
-
enabledStorageNodeDataSources.get(unitNodeMapper.getStorageNode())).getConnectionPropertySynonyms().getStandardProperties();
+
enabledStorageNodeDataSources.get(storageNode.getName())).getConnectionPropertySynonyms().getStandardProperties();
ConnectionPropertiesParser parser =
DatabaseTypedSPILoader.getService(ConnectionPropertiesParser.class,
storageType);
- return Optional.of(parser.parse(standardProps.get("url").toString(),
standardProps.get("username").toString(), unitNodeMapper.getCatalog()));
+ return Optional.of(parser.parse(standardProps.get("url").toString(),
standardProps.get("username").toString(), storageNode.getCatalog()));
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
index d22678057bb..81ef617ad7a 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitMetaData.java
@@ -19,7 +19,7 @@ package
org.apache.shardingsphere.infra.metadata.database.resource.unit;
import lombok.Getter;
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.metadata.database.resource.node.StorageNodeName;
import javax.sql.DataSource;
import java.util.LinkedHashMap;
@@ -41,7 +41,7 @@ public final class StorageUnitMetaData {
// TODO zhangliang: should refactor
private final Map<String, DataSource> dataSources;
- public StorageUnitMetaData(final String databaseName, final
Map<StorageNode, DataSource> storageNodeDataSources,
+ public StorageUnitMetaData(final String databaseName, final
Map<StorageNodeName, DataSource> storageNodeDataSources,
final Map<String, DataSourcePoolProperties>
dataSourcePoolPropertiesMap, final Map<String, StorageUnitNodeMapper>
unitNodeMappers) {
this.unitNodeMappers = unitNodeMappers;
storageUnits = new LinkedHashMap<>(unitNodeMappers.size(), 1F);
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapper.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapper.java
index 97f6b4d6d3b..9ac4e1891c4 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapper.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapper.java
@@ -31,12 +31,4 @@ public final class StorageUnitNodeMapper {
private final String name;
private final StorageNode storageNode;
-
- private final String url;
-
- private final String catalog;
-
- public StorageUnitNodeMapper(final String name, final StorageNode
storageNode, final String url) {
- this(name, storageNode, url, null);
- }
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapperUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapperUtils.java
index 14a7790a888..e5c6144e3f9 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapperUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/resource/unit/StorageUnitNodeMapperUtils.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
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.metadata.database.resource.node.StorageNodeName;
import javax.sql.DataSource;
import java.util.LinkedHashMap;
@@ -54,7 +55,7 @@ public final class StorageUnitNodeMapperUtils {
private static StorageUnitNodeMapper fromDataSource(final String
storageUnitName, final DataSource dataSource) {
DataSourcePoolProperties props =
DataSourcePoolPropertiesCreator.create(dataSource);
String url =
props.getConnectionPropertySynonyms().getStandardProperties().get("url").toString();
- return new StorageUnitNodeMapper(storageUnitName, new
StorageNode(storageUnitName), url);
+ return new StorageUnitNodeMapper(storageUnitName, new
StorageNode(storageUnitName, url));
}
/**
@@ -76,8 +77,8 @@ public final class StorageUnitNodeMapperUtils {
Map<String, Object> standardProps =
props.getConnectionPropertySynonyms().getStandardProperties();
String url = standardProps.get("url").toString();
boolean isInstanceConnectionAvailable = new
DatabaseTypeRegistry(DatabaseTypeFactory.get(url)).getDialectDatabaseMetaData().isInstanceConnectionAvailable();
- StorageNode storageNode = new
StorageNode(getStorageNodeName(storageUnitName, url,
standardProps.get("username").toString(), isInstanceConnectionAvailable));
- return createStorageUnitNodeMapper(storageNode, storageUnitName, url,
isInstanceConnectionAvailable);
+ String storageNodeName = getStorageNodeName(storageUnitName, url,
standardProps.get("username").toString(), isInstanceConnectionAvailable);
+ return createStorageUnitNodeMapper(storageNodeName, storageUnitName,
url, isInstanceConnectionAvailable);
}
private static String getStorageNodeName(final String dataSourceName,
final String url, final String username, final boolean
isInstanceConnectionAvailable) {
@@ -93,10 +94,10 @@ public final class StorageUnitNodeMapperUtils {
return String.format("%s_%s_%s", hostname, port, username);
}
- private static StorageUnitNodeMapper createStorageUnitNodeMapper(final
StorageNode storageNode, final String storageUnitName, final String url, final
boolean isInstanceConnectionAvailable) {
+ private static StorageUnitNodeMapper createStorageUnitNodeMapper(final
String storageNodeName, final String storageUnitName, final String url, final
boolean isInstanceConnectionAvailable) {
return isInstanceConnectionAvailable
- ? new StorageUnitNodeMapper(storageUnitName, storageNode, url,
new StandardJdbcUrlParser().parse(url).getDatabase())
- : new StorageUnitNodeMapper(storageUnitName, storageNode, url);
+ ? new StorageUnitNodeMapper(storageUnitName, new
StorageNode(storageNodeName, url, new
StandardJdbcUrlParser().parse(url).getDatabase()))
+ : new StorageUnitNodeMapper(storageUnitName, new
StorageNode(storageNodeName, url));
}
/**
@@ -105,14 +106,14 @@ public final class StorageUnitNodeMapperUtils {
* @param storageUnitDataSourcePoolProps storage unit grouped data source
pool properties map
* @return storage node grouped data source pool properties map
*/
- public static Map<StorageNode, DataSourcePoolProperties>
getStorageNodeDataSourcePoolProperties(final Map<String,
DataSourcePoolProperties> storageUnitDataSourcePoolProps) {
- Map<StorageNode, DataSourcePoolProperties> result = new
LinkedHashMap<>();
+ public static Map<StorageNodeName, DataSourcePoolProperties>
getStorageNodeDataSourcePoolProperties(final Map<String,
DataSourcePoolProperties> storageUnitDataSourcePoolProps) {
+ Map<StorageNodeName, DataSourcePoolProperties> result = new
LinkedHashMap<>();
for (Entry<String, DataSourcePoolProperties> entry :
storageUnitDataSourcePoolProps.entrySet()) {
Map<String, Object> standardProps =
entry.getValue().getConnectionPropertySynonyms().getStandardProperties();
String url = standardProps.get("url").toString();
boolean isInstanceConnectionAvailable = new
DatabaseTypeRegistry(DatabaseTypeFactory.get(url)).getDialectDatabaseMetaData().isInstanceConnectionAvailable();
- StorageNode storageNode = new
StorageNode(getStorageNodeName(entry.getKey(), url,
standardProps.get("username").toString(), isInstanceConnectionAvailable));
- result.putIfAbsent(storageNode, entry.getValue());
+ StorageNodeName storageNodeName = new
StorageNodeName(getStorageNodeName(entry.getKey(), url,
standardProps.get("username").toString(), isInstanceConnectionAvailable));
+ result.putIfAbsent(storageNodeName, entry.getValue());
}
return result;
}
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
index 9d53fc6119a..2ae87a4f66d 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceGeneratedDatabaseConfigurationTest.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.config.ConnectionConfigur
import
org.apache.shardingsphere.infra.datasource.pool.config.DataSourceConfiguration;
import
org.apache.shardingsphere.infra.datasource.pool.config.PoolConfiguration;
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.metadata.database.resource.node.StorageNodeName;
import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
import org.junit.jupiter.api.Test;
@@ -50,7 +50,7 @@ class DataSourceGeneratedDatabaseConfigurationTest {
@Test
void assertGetStorageNodes() {
DataSourceGeneratedDatabaseConfiguration databaseConfig =
createDataSourceGeneratedDatabaseConfiguration();
- HikariDataSource hikariDataSource = (HikariDataSource)
databaseConfig.getStorageResource().getDataSourceMap().get(new
StorageNode("normal_db"));
+ HikariDataSource hikariDataSource = (HikariDataSource)
databaseConfig.getStorageResource().getDataSourceMap().get(new
StorageNodeName("normal_db"));
assertThat(hikariDataSource.getJdbcUrl(),
is("jdbc:mock://127.0.0.1/normal_db"));
assertThat(hikariDataSource.getUsername(), is("root"));
assertThat(hikariDataSource.getPassword(), is(""));
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
index 91f909cc285..d0ca3628adc 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/database/impl/DataSourceProvidedDatabaseConfigurationTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.infra.config.database.impl;
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.metadata.database.resource.node.StorageNodeName;
import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.jupiter.api.Test;
@@ -45,7 +45,7 @@ class DataSourceProvidedDatabaseConfigurationTest {
@Test
void assertGetStorageNodes() {
DataSourceProvidedDatabaseConfiguration databaseConfig =
createDataSourceProvidedDatabaseConfiguration();
- MockedDataSource dataSource = (MockedDataSource)
databaseConfig.getStorageResource().getDataSourceMap().get(new
StorageNode("foo_ds"));
+ MockedDataSource dataSource = (MockedDataSource)
databaseConfig.getStorageResource().getDataSourceMap().get(new
StorageNodeName("foo_ds"));
assertThat(dataSource.getUrl(), is("jdbc:mock://127.0.0.1/foo_ds"));
assertThat(dataSource.getUsername(), is("root"));
assertThat(dataSource.getPassword(), is("root"));
diff --git
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
index cab63199188..7f46cd4ffb6 100644
---
a/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
+++
b/jdbc/core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSourceTest.java
@@ -22,7 +22,7 @@ import lombok.SneakyThrows;
import
org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
-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.executor.sql.execute.engine.ConnectionMode;
import org.apache.shardingsphere.infra.state.cluster.ClusterState;
import org.apache.shardingsphere.infra.state.instance.InstanceState;
@@ -132,9 +132,9 @@ class ShardingSphereDataSourceTest {
try (HikariDataSource dataSource = createHikariDataSource()) {
ShardingSphereDataSource actual =
createShardingSphereDataSource(dataSource);
actual.close();
- Map<StorageNode, DataSource> dataSourceMap =
getContextManager(actual).getMetaDataContexts().getMetaData()
+ Map<StorageNodeName, DataSource> dataSourceMap =
getContextManager(actual).getMetaDataContexts().getMetaData()
.getDatabase(DefaultDatabase.LOGIC_NAME).getResourceMetaData().getDataSourceMap();
- assertTrue(((HikariDataSource) dataSourceMap.get(new
StorageNode("ds"))).isClosed());
+ assertTrue(((HikariDataSource) dataSourceMap.get(new
StorageNodeName("ds"))).isClosed());
}
}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
index 298ab84767d..e17c3758767 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/MetaDataPersistService.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolD
import
org.apache.shardingsphere.infra.datasource.pool.config.DataSourceConfiguration;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
-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.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersistService;
@@ -120,9 +120,9 @@ public final class MetaDataPersistService implements
MetaDataBasedPersistService
return databaseConfigs.getDataSourcePoolPropertiesMap();
}
- private Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap(final Map<StorageNode, DataSource>
storageNodeDataSources) {
+ private Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap(final Map<StorageNodeName, DataSource>
storageNodeDataSources) {
Map<String, DataSourcePoolProperties> result = new
LinkedHashMap<>(storageNodeDataSources.size(), 1F);
- for (Entry<StorageNode, DataSource> entry :
storageNodeDataSources.entrySet()) {
+ for (Entry<StorageNodeName, DataSource> entry :
storageNodeDataSources.entrySet()) {
result.put(entry.getKey().getName(),
DataSourcePoolPropertiesCreator.create(entry.getValue()));
}
return result;
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/NewMetaDataPersistService.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/NewMetaDataPersistService.java
index 9850afa876c..c557a740b03 100644
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/NewMetaDataPersistService.java
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/NewMetaDataPersistService.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.config.DataSourceConfigur
import
org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import
org.apache.shardingsphere.infra.datasource.pool.props.creator.DataSourcePoolPropertiesCreator;
-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.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.metadata.persist.data.ShardingSphereDataPersistService;
@@ -126,9 +126,9 @@ public final class NewMetaDataPersistService implements
MetaDataBasedPersistServ
return databaseConfigs.getDataSourcePoolPropertiesMap();
}
- private Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap(final Map<StorageNode, DataSource>
storageNodeDataSources) {
+ private Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap(final Map<StorageNodeName, DataSource>
storageNodeDataSources) {
Map<String, DataSourcePoolProperties> result = new
LinkedHashMap<>(storageNodeDataSources.size(), 1F);
- for (Entry<StorageNode, DataSource> entry :
storageNodeDataSources.entrySet()) {
+ for (Entry<StorageNodeName, DataSource> entry :
storageNodeDataSources.entrySet()) {
result.put(entry.getKey().getName(),
DataSourcePoolPropertiesCreator.create(entry.getValue()));
}
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 02e22e03c09..f79132f3c51 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
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.rule.scope.DatabaseRuleConfiguration;
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.metadata.database.resource.node.StorageNodeName;
import
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapper;
@@ -274,7 +274,7 @@ public final class ConfigurationContextManager {
* @return ShardingSphere databases
*/
public Map<String, ShardingSphereDatabase> renewDatabase(final
ShardingSphereDatabase database, final SwitchingResource resource) {
- Map<StorageNode, DataSource> newStorageNodes =
getNewStorageNodes(database.getResourceMetaData().getDataSourceMap(), resource);
+ Map<StorageNodeName, DataSource> newStorageNodes =
getNewStorageNodes(database.getResourceMetaData().getDataSourceMap(), resource);
Map<String, StorageUnitNodeMapper> newStorageUnitNodeMappers =
getNewStorageUnitNodeMappers(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits(),
resource);
Map<String, DataSourcePoolProperties> propsMap =
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, entry ->
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) ->
currentValue, LinkedHashMap::new));
@@ -282,9 +282,9 @@ public final class ConfigurationContextManager {
new ResourceMetaData(database.getName(), newStorageNodes,
newStorageUnitNodeMappers, propsMap), database.getRuleMetaData(),
database.getSchemas()));
}
- private Map<StorageNode, DataSource> getNewStorageNodes(final
Map<StorageNode, DataSource> currentStorageNodes, final SwitchingResource
resource) {
- Map<StorageNode, DataSource> result = new LinkedHashMap<>();
- for (Entry<StorageNode, DataSource> entry :
currentStorageNodes.entrySet()) {
+ private Map<StorageNodeName, DataSource> getNewStorageNodes(final
Map<StorageNodeName, DataSource> currentStorageNodes, final SwitchingResource
resource) {
+ Map<StorageNodeName, DataSource> result = new LinkedHashMap<>();
+ for (Entry<StorageNodeName, DataSource> entry :
currentStorageNodes.entrySet()) {
if
(!resource.getStaleStorageResource().getDataSourceMap().containsKey(entry.getKey()))
{
result.put(entry.getKey(), entry.getValue());
}
@@ -364,7 +364,7 @@ public final class ConfigurationContextManager {
}
private StorageResource getMergedStorageResource(final ResourceMetaData
currentResourceMetaData, final SwitchingResource switchingResource) {
- Map<StorageNode, DataSource> storageNodeDataSources =
currentResourceMetaData.getDataSourceMap();
+ Map<StorageNodeName, DataSource> storageNodeDataSources =
currentResourceMetaData.getDataSourceMap();
Map<String, StorageUnitNodeMapper> storageUnitNodeMappers =
currentResourceMetaData.getStorageUnitMetaData().getUnitNodeMappers();
if (null != switchingResource && null !=
switchingResource.getNewStorageResource() &&
!switchingResource.getNewStorageResource().getDataSourceMap().isEmpty()) {
storageNodeDataSources.putAll(switchingResource.getNewStorageResource().getDataSourceMap());
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
index e5a43bdbe3b..5448050a69a 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/NewResourceSwitchManager.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapperUtils;
-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.StorageUnitNodeMapper;
import javax.sql.DataSource;
@@ -57,10 +57,10 @@ public final class NewResourceSwitchManager {
private StorageResource getRegisterNewStorageResource(final
ResourceMetaData resourceMetaData,
final Map<String,
StorageUnitNodeMapper> mappers, final Map<String, DataSourcePoolProperties>
storageUnitDataSourcePoolProps) {
- Collection<StorageNode> storageNodes =
mappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Map<StorageNode, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
- Map<StorageNode, DataSource> newStorageNodes = new
LinkedHashMap<>(storageNodes.size(), 1F);
- for (StorageNode each : storageNodes) {
+ Collection<StorageNodeName> storageNodeNames =
mappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Map<StorageNodeName, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
+ Map<StorageNodeName, DataSource> newStorageNodes = new
LinkedHashMap<>(storageNodeNames.size(), 1F);
+ for (StorageNodeName each : storageNodeNames) {
if (!resourceMetaData.getDataSourceMap().containsKey(each)) {
newStorageNodes.put(each,
DataSourcePoolCreator.create(storageNodeDataSourcePoolProps.get(each)));
}
@@ -84,20 +84,20 @@ public final class NewResourceSwitchManager {
}
private StorageResource getAlterNewStorageResource(final Map<String,
StorageUnitNodeMapper> mappers, final Map<String, DataSourcePoolProperties>
storageUnitDataSourcePoolProps) {
- Collection<StorageNode> toBeAlteredStorageNodes =
mappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Map<StorageNode, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
- Map<StorageNode, DataSource> storageNodes = new
LinkedHashMap<>(toBeAlteredStorageNodes.size(), 1F);
- for (StorageNode each : toBeAlteredStorageNodes) {
+ Collection<StorageNodeName> toBeAlteredStorageNodeNames =
mappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Map<StorageNodeName, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
+ Map<StorageNodeName, DataSource> storageNodes = new
LinkedHashMap<>(toBeAlteredStorageNodeNames.size(), 1F);
+ for (StorageNodeName each : toBeAlteredStorageNodeNames) {
storageNodes.put(each,
DataSourcePoolCreator.create(storageNodeDataSourcePoolProps.get(each)));
}
return new StorageResource(storageNodes, mappers);
}
private StorageResource getStaleStorageResource(final ResourceMetaData
resourceMetaData, final Map<String, StorageUnitNodeMapper> mappers) {
- Collection<StorageNode> toBeAlteredStorageNodes =
mappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Map<StorageNode, DataSource> storageNodes = new
LinkedHashMap<>(toBeAlteredStorageNodes.size(), 1F);
- for (Entry<StorageNode, DataSource> entry :
resourceMetaData.getDataSourceMap().entrySet()) {
- if (toBeAlteredStorageNodes.contains(entry.getKey())) {
+ Collection<StorageNodeName> toBeAlteredStorageNodeNames =
mappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Map<StorageNodeName, DataSource> storageNodes = new
LinkedHashMap<>(toBeAlteredStorageNodeNames.size(), 1F);
+ for (Entry<StorageNodeName, DataSource> entry :
resourceMetaData.getDataSourceMap().entrySet()) {
+ if (toBeAlteredStorageNodeNames.contains(entry.getKey())) {
storageNodes.put(entry.getKey(), entry.getValue());
}
}
@@ -122,9 +122,9 @@ public final class NewResourceSwitchManager {
private StorageResource getToBeRemovedStaleStorageResource(final
ResourceMetaData resourceMetaData, final String storageUnitName) {
StorageUnitNodeMapper storageUnitNodeMapper =
resourceMetaData.getStorageUnitMetaData().getUnitNodeMappers().remove(storageUnitName);
Map<String, StorageUnitNodeMapper> reservedStorageUnitNodeMappers =
resourceMetaData.getStorageUnitMetaData().getUnitNodeMappers();
- Map<StorageNode, DataSource> storageNodes = new LinkedHashMap<>(1, 1F);
+ Map<StorageNodeName, DataSource> storageNodes = new LinkedHashMap<>(1,
1F);
if (reservedStorageUnitNodeMappers.values().stream().noneMatch(each ->
each.getStorageNode().equals(storageUnitNodeMapper.getStorageNode()))) {
- storageNodes.put(storageUnitNodeMapper.getStorageNode(),
resourceMetaData.getDataSourceMap().get(storageUnitNodeMapper.getStorageNode()));
+ storageNodes.put(storageUnitNodeMapper.getStorageNode().getName(),
resourceMetaData.getDataSourceMap().get(storageUnitNodeMapper.getStorageNode().getName()));
}
return new StorageResource(storageNodes,
Collections.singletonMap(storageUnitName, storageUnitNodeMapper));
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
index 48033de1e49..e4d5429209c 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManager.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePo
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapperUtils;
-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.resource.unit.StorageUnitNodeMapper;
@@ -84,8 +84,8 @@ public final class ResourceSwitchManager {
mergedDataSourcePoolPropertiesMap.putAll(toBeChangedPropsMap);
Map<String, StorageUnitNodeMapper> toBeChangedMappers =
StorageUnitNodeMapperUtils.fromDataSourcePoolProperties(toBeChangedPropsMap);
StorageResource staleStorageResource =
getStaleDataSources(resourceMetaData, toBeChangedMappers, toBeChangedPropsMap);
- Collection<StorageNode> toBeChangedStorageNodes =
toBeChangedMappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
-
staleStorageResource.getDataSourceMap().putAll(getToBeDeletedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNodes));
+ Collection<StorageNodeName> toBeChangedStorageNodeNames =
toBeChangedMappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+
staleStorageResource.getDataSourceMap().putAll(getToBeDeletedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNodeNames));
staleStorageResource.getStorageUnitNodeMappers().putAll(
getToBeDeletedStorageUnitNodeMappers(resourceMetaData.getStorageUnitMetaData().getStorageUnits(),
toBeChangedMappers.keySet()));
return new SwitchingResource(resourceMetaData,
@@ -94,20 +94,20 @@ public final class ResourceSwitchManager {
private StorageResource createNewStorageResource(final ResourceMetaData
resourceMetaData,
final Map<String,
StorageUnitNodeMapper> toBeChangedMappers, final Map<String,
DataSourcePoolProperties> storageUnitDataSourcePoolProps) {
- Collection<StorageNode> toBeChangedStorageNode =
toBeChangedMappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Map<StorageNode, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
- Map<StorageNode, DataSource> storageNodes =
- getNewStorageNodes(resourceMetaData, toBeChangedStorageNode,
storageNodeDataSourcePoolProps);
+ Collection<StorageNodeName> toBeChangedStorageNodeName =
toBeChangedMappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Map<StorageNodeName, DataSourcePoolProperties>
storageNodeDataSourcePoolProps =
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps);
+ Map<StorageNodeName, DataSource> storageNodes =
+ getNewStorageNodes(resourceMetaData,
toBeChangedStorageNodeName, storageNodeDataSourcePoolProps);
Map<String, StorageUnitNodeMapper> storageUnitNodeMappers =
getNewStorageUnitNodeMappers(resourceMetaData, toBeChangedMappers);
return new StorageResource(storageNodes, storageUnitNodeMappers);
}
- private Map<StorageNode, DataSource> getNewStorageNodes(final
ResourceMetaData resourceMetaData, final Collection<StorageNode>
toBeChangedStorageNode,
- final
Map<StorageNode, DataSourcePoolProperties> propsMap) {
- Map<StorageNode, DataSource> result = new
LinkedHashMap<>(resourceMetaData.getDataSourceMap());
-
result.keySet().removeAll(getToBeDeletedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNode).keySet());
-
result.putAll(getChangedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNode, propsMap));
-
result.putAll(getToBeAddedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNode, propsMap));
+ private Map<StorageNodeName, DataSource> getNewStorageNodes(final
ResourceMetaData resourceMetaData, final Collection<StorageNodeName>
toBeChangedStorageNodeName,
+ final
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
+ Map<StorageNodeName, DataSource> result = new
LinkedHashMap<>(resourceMetaData.getDataSourceMap());
+
result.keySet().removeAll(getToBeDeletedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNodeName).keySet());
+
result.putAll(getChangedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNodeName, propsMap));
+
result.putAll(getToBeAddedDataSources(resourceMetaData.getDataSourceMap(),
toBeChangedStorageNodeName, propsMap));
return result;
}
@@ -119,26 +119,29 @@ public final class ResourceSwitchManager {
return result;
}
- private Map<StorageNode, DataSource> getChangedDataSources(final
Map<StorageNode, DataSource> storageNodes,
- final
Collection<StorageNode> toBeChangedStorageNode, final Map<StorageNode,
DataSourcePoolProperties> propsMap) {
- Collection<StorageNode> toBeChangedDataSourceNames =
toBeChangedStorageNode.stream()
+ private Map<StorageNodeName, DataSource> getChangedDataSources(final
Map<StorageNodeName, DataSource> storageNodes,
+ final
Collection<StorageNodeName> toBeChangedStorageNodeName,
+ final
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
+ Collection<StorageNodeName> toBeChangedDataSourceNames =
toBeChangedStorageNodeName.stream()
.filter(each -> isModifiedDataSource(storageNodes, each,
propsMap.get(each))).collect(Collectors.toList());
- Map<StorageNode, DataSource> result = new
LinkedHashMap<>(toBeChangedStorageNode.size(), 1F);
- for (StorageNode each : toBeChangedDataSourceNames) {
+ Map<StorageNodeName, DataSource> result = new
LinkedHashMap<>(toBeChangedStorageNodeName.size(), 1F);
+ for (StorageNodeName each : toBeChangedDataSourceNames) {
result.put(each, DataSourcePoolCreator.create(propsMap.get(each)));
}
return result;
}
- private boolean isModifiedDataSource(final Map<StorageNode, DataSource>
originalDataSources, final StorageNode storageNode, final
DataSourcePoolProperties propsMap) {
- return originalDataSources.containsKey(storageNode) &&
!propsMap.equals(DataSourcePoolPropertiesCreator.create(originalDataSources.get(storageNode)));
+ private boolean isModifiedDataSource(final Map<StorageNodeName,
DataSource> originalDataSources,
+ final StorageNodeName
storageNodeName, final DataSourcePoolProperties propsMap) {
+ return originalDataSources.containsKey(storageNodeName) &&
!propsMap.equals(DataSourcePoolPropertiesCreator.create(originalDataSources.get(storageNodeName)));
}
- private Map<StorageNode, DataSource> getToBeAddedDataSources(final
Map<StorageNode, DataSource> storageNodes, final Collection<StorageNode>
toBeChangedStorageNode,
- final
Map<StorageNode, DataSourcePoolProperties> propsMap) {
- Collection<StorageNode> toBeAddedDataSourceNames =
toBeChangedStorageNode.stream().filter(each ->
!storageNodes.containsKey(each)).collect(Collectors.toList());
- Map<StorageNode, DataSource> result = new LinkedHashMap<>();
- for (StorageNode each : toBeAddedDataSourceNames) {
+ private Map<StorageNodeName, DataSource> getToBeAddedDataSources(final
Map<StorageNodeName, DataSource> storageNodes,
+ final
Collection<StorageNodeName> toBeChangedStorageNodeName,
+ final
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
+ Collection<StorageNodeName> toBeAddedDataSourceNames =
toBeChangedStorageNodeName.stream().filter(each ->
!storageNodes.containsKey(each)).collect(Collectors.toList());
+ Map<StorageNodeName, DataSource> result = new LinkedHashMap<>();
+ for (StorageNodeName each : toBeAddedDataSourceNames) {
result.put(each, DataSourcePoolCreator.create(propsMap.get(each)));
}
return result;
@@ -148,10 +151,10 @@ public final class ResourceSwitchManager {
Map<String, StorageUnitNodeMapper> reservedStorageUnitNodeMappers =
resourceMetaData.getStorageUnitMetaData().getStorageUnits().entrySet().stream()
.filter(entry -> !toRemovedMappers.containsKey(entry.getKey()))
.collect(Collectors.toMap(Entry::getKey, entry ->
entry.getValue().getUnitNodeMapper()));
- Collection<StorageNode> toBeRemovedStorageNodes =
toRemovedMappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Collection<StorageNode> inUsedDataSourceNames =
reservedStorageUnitNodeMappers.values().stream().map(StorageUnitNodeMapper::getStorageNode).collect(Collectors.toSet());
- Map<StorageNode, DataSource> staleStorageNodes =
resourceMetaData.getDataSourceMap().entrySet().stream()
- .filter(entry ->
toBeRemovedStorageNodes.contains(entry.getKey()) &&
!inUsedDataSourceNames.contains(entry.getKey()))
+ Collection<StorageNodeName> toBeRemovedStorageNodeNames =
toRemovedMappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Collection<StorageNodeName> inUsedDataSourceNames =
reservedStorageUnitNodeMappers.values().stream().map(each ->
each.getStorageNode().getName()).collect(Collectors.toSet());
+ Map<StorageNodeName, DataSource> staleStorageNodes =
resourceMetaData.getDataSourceMap().entrySet().stream()
+ .filter(entry ->
toBeRemovedStorageNodeNames.contains(entry.getKey()) &&
!inUsedDataSourceNames.contains(entry.getKey()))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));
Map<String, StorageUnitNodeMapper> staleStorageUnitNodeMappers =
resourceMetaData.getStorageUnitMetaData().getStorageUnits().entrySet().stream()
.filter(entry ->
!reservedStorageUnitNodeMappers.containsKey(entry.getKey())).collect(Collectors.toMap(Entry::getKey,
entry -> entry.getValue().getUnitNodeMapper()));
@@ -160,27 +163,29 @@ public final class ResourceSwitchManager {
private StorageResource getStaleDataSources(final ResourceMetaData
resourceMetaData, final Map<String, StorageUnitNodeMapper> toBeChangedMappers,
final Map<String,
DataSourcePoolProperties> storageUnitDataSourcePoolProps) {
- Map<StorageNode, DataSource> storageNodes = new
LinkedHashMap<>(resourceMetaData.getDataSourceMap().size(), 1F);
+ Map<StorageNodeName, DataSource> storageNodes = new
LinkedHashMap<>(resourceMetaData.getDataSourceMap().size(), 1F);
Map<String, StorageUnitNodeMapper> storageUnitNodeMappers = new
LinkedHashMap<>(resourceMetaData.getStorageUnitMetaData().getUnitNodeMappers().size(),
1F);
storageNodes.putAll(getToBeChangedDataSources(resourceMetaData.getDataSourceMap(),
StorageUnitNodeMapperUtils.getStorageNodeDataSourcePoolProperties(storageUnitDataSourcePoolProps)));
storageUnitNodeMappers.putAll(getChangedStorageUnitNodeMappers(resourceMetaData.getStorageUnitMetaData().getStorageUnits(),
toBeChangedMappers));
return new StorageResource(storageNodes, storageUnitNodeMappers);
}
- private Map<StorageNode, DataSource> getToBeChangedDataSources(final
Map<StorageNode, DataSource> storageNodes, final Map<StorageNode,
DataSourcePoolProperties> propsMap) {
- Map<StorageNode, DataSource> result = new
LinkedHashMap<>(storageNodes.size(), 1F);
- for (Entry<StorageNode, DataSourcePoolProperties> entry :
propsMap.entrySet()) {
- StorageNode storageNode = entry.getKey();
- if (isModifiedDataSource(storageNodes, storageNode,
entry.getValue())) {
- result.put(storageNode, storageNodes.get(storageNode));
+ private Map<StorageNodeName, DataSource> getToBeChangedDataSources(final
Map<StorageNodeName, DataSource> storageNodes,
+ final
Map<StorageNodeName, DataSourcePoolProperties> propsMap) {
+ Map<StorageNodeName, DataSource> result = new
LinkedHashMap<>(storageNodes.size(), 1F);
+ for (Entry<StorageNodeName, DataSourcePoolProperties> entry :
propsMap.entrySet()) {
+ StorageNodeName storageNodeName = entry.getKey();
+ if (isModifiedDataSource(storageNodes, storageNodeName,
entry.getValue())) {
+ result.put(storageNodeName, storageNodes.get(storageNodeName));
}
}
return result;
}
- private Map<StorageNode, DataSource> getToBeDeletedDataSources(final
Map<StorageNode, DataSource> storageNodes, final Collection<StorageNode>
toBeChangedDataSourceNames) {
- Map<StorageNode, DataSource> result = new
LinkedHashMap<>(storageNodes.size(), 1F);
- for (Entry<StorageNode, DataSource> entry : storageNodes.entrySet()) {
+ private Map<StorageNodeName, DataSource> getToBeDeletedDataSources(final
Map<StorageNodeName, DataSource> storageNodes,
+ final
Collection<StorageNodeName> toBeChangedDataSourceNames) {
+ Map<StorageNodeName, DataSource> result = new
LinkedHashMap<>(storageNodes.size(), 1F);
+ for (Entry<StorageNodeName, DataSource> entry :
storageNodes.entrySet()) {
if (!toBeChangedDataSourceNames.contains(entry.getKey())) {
result.put(entry.getKey(), entry.getValue());
}
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 0247ffeeea7..3c637828390 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
@@ -29,7 +29,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.StorageNodeUtils;
-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.resource.unit.StorageUnitMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnitNodeMapper;
@@ -245,7 +245,7 @@ class ContextManagerTest {
Collections.singletonMap("foo_ds", new
DataSourcePoolProperties(MockedDataSource.class.getName(),
createProperties("test", "test"))));
assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size(),
is(3));
assertAlteredDataSource((MockedDataSource)
contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")
- .getResourceMetaData().getDataSourceMap().get(new
StorageNode("foo_ds")));
+ .getResourceMetaData().getDataSourceMap().get(new
StorageNodeName("foo_ds")));
}
private ResourceMetaData createOriginalResource() {
@@ -254,7 +254,7 @@ class ContextManagerTest {
originalDataSources.put("ds_1", new MockedDataSource());
originalDataSources.put("ds_2", new MockedDataSource());
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(originalDataSources);
- Map<StorageNode, DataSource> storageNodeDataSourceMap =
StorageNodeUtils.getStorageNodeDataSources(originalDataSources);
+ Map<StorageNodeName, DataSource> storageNodeDataSourceMap =
StorageNodeUtils.getStorageNodeDataSources(originalDataSources);
Map<String, StorageUnit> storageUnits = new LinkedHashMap<>(2, 1F);
Map<String, StorageUnitNodeMapper> storageUnitNodeMappers =
StorageUnitNodeMapperUtils.fromDataSources(originalDataSources);
for (Entry<String, StorageUnitNodeMapper> entry :
storageUnitNodeMappers.entrySet()) {
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
index 5175a66badd..2dbceba9c2f 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/ResourceSwitchManagerTest.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.manager.switcher;
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.metadata.database.resource.node.StorageNodeName;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.awaitility.Awaitility;
@@ -86,9 +86,9 @@ class ResourceSwitchManagerTest {
private void assertNewDataSources(final SwitchingResource actual) {
assertThat(actual.getNewStorageResource().getDataSourceMap().size(),
is(3));
-
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNode("not_change")));
-
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNode("new")));
-
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNode("replace")));
+
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNodeName("not_change")));
+
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNodeName("new")));
+
assertTrue(actual.getNewStorageResource().getDataSourceMap().containsKey(new
StorageNodeName("replace")));
}
private void assertStaleDataSources(final Map<String, DataSource>
originalDataSourceMap) {
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
index 59453e49369..8cebd574e4d 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/switcher/SwitchingResourceTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.mode.manager.switcher;
import
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import
org.apache.shardingsphere.infra.metadata.database.resource.StorageResource;
-import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
+import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
@@ -36,8 +36,8 @@ class SwitchingResourceTest {
void assertCloseStaleDataSources() {
MockedDataSource staleDataSource = new MockedDataSource();
ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
- StorageResource newStorageResource = new
StorageResource(Collections.singletonMap(new StorageNode("new_ds"), new
MockedDataSource()), Collections.emptyMap());
- StorageResource staleStorageResource = new
StorageResource(Collections.singletonMap(new StorageNode("stale_ds"),
staleDataSource), Collections.emptyMap());
+ StorageResource newStorageResource = new
StorageResource(Collections.singletonMap(new StorageNodeName("new_ds"), new
MockedDataSource()), Collections.emptyMap());
+ StorageResource staleStorageResource = new
StorageResource(Collections.singletonMap(new StorageNodeName("stale_ds"),
staleDataSource), Collections.emptyMap());
new SwitchingResource(resourceMetaData, newStorageResource,
staleStorageResource, Collections.emptyMap()).closeStaleDataSources();
Awaitility.await().pollDelay(10L,
TimeUnit.MILLISECONDS).until(staleDataSource::isClosed);
assertTrue(staleDataSource.isClosed());
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
index 5e9cab83f44..d6d690ac1cd 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/config/yaml/swapper/YamlProxyConfigurationSwapperTest.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.config.database.DatabaseConfiguration;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
-import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
+import
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNodeName;
import org.apache.shardingsphere.proxy.backend.config.ProxyConfiguration;
import org.apache.shardingsphere.proxy.backend.config.ProxyConfigurationLoader;
import org.apache.shardingsphere.proxy.backend.config.YamlProxyConfiguration;
@@ -56,7 +56,7 @@ class YamlProxyConfigurationSwapperTest {
private void assertDataSources(final ProxyConfiguration proxyConfig) {
Map<String, DatabaseConfiguration> actual =
proxyConfig.getDatabaseConfigurations();
assertThat(actual.size(), is(1));
- HikariDataSource dataSource = (HikariDataSource)
actual.get("swapper_test").getStorageResource().getDataSourceMap().get(new
StorageNode("foo_db"));
+ HikariDataSource dataSource = (HikariDataSource)
actual.get("swapper_test").getStorageResource().getDataSourceMap().get(new
StorageNodeName("foo_db"));
assertThat(dataSource.getJdbcUrl(),
is("jdbc:h2:mem:foo_db;DB_CLOSE_DELAY=-1"));
assertThat(dataSource.getUsername(), is("sa"));
assertThat(dataSource.getPassword(), is(""));