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 3ad843a8abe Remove ResourceMetaData.getDataSources() (#28149)
3ad843a8abe is described below
commit 3ad843a8abe033a1dbbd5bc93b8b77b599169535
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Aug 18 01:08:32 2023 +0800
Remove ResourceMetaData.getDataSources() (#28149)
---
.../impl/proxy/ProxyMetaDataInfoExporter.java | 2 +-
.../impl/proxy/ProxyMetaDataInfoExporterTest.java | 4 ++--
.../update/CreateEncryptRuleStatementUpdater.java | 2 +-
.../ReadwriteSplittingRuleStatementChecker.java | 4 ++--
...ReadwriteSplittingRuleStatementUpdaterTest.java | 6 ++++--
.../data/ShardingStatisticsTableCollector.java | 3 ++-
.../infra/metadata/ShardingSphereMetaData.java | 3 ++-
.../metadata/database/ShardingSphereDatabase.java | 6 +++---
.../database/resource/ResourceMetaData.java | 9 ---------
.../ShardingSphereTableDataCollectorUtils.java | 2 +-
.../infra/metadata/ShardingSphereMetaDataTest.java | 7 ++++---
.../table/AlterTableStatementSchemaRefresher.java | 2 +-
.../table/CreateTableStatementSchemaRefresher.java | 2 +-
.../table/RenameTableStatementSchemaRefresher.java | 2 +-
.../view/AlterViewStatementSchemaRefresher.java | 2 +-
.../view/CreateViewStatementSchemaRefresher.java | 2 +-
.../route/engine/impl/AllSQLRouteExecutor.java | 2 +-
.../route/engine/impl/PartialSQLRouteExecutor.java | 6 +++---
.../route/engine/AllSQLRouteExecutorTest.java | 2 +-
.../engine/impl/PartialSQLRouteExecutorTest.java | 2 +-
.../globalclock/core/rule/GlobalClockRule.java | 4 ++--
.../factory/ExternalMetaDataFactoryTest.java | 6 +++---
.../single/route/SingleSQLRouter.java | 4 ++--
.../single/route/SingleSQLRouterTest.java | 7 ++++---
.../query/ShowUnloadedSingleTableExecutor.java | 3 ++-
.../update/LoadSingleTableStatementUpdater.java | 3 ++-
...aultSingleTableStorageUnitStatementUpdater.java | 2 +-
.../transaction/rule/TransactionRule.java | 2 +-
.../transaction/rule/TransactionRuleTest.java | 23 +++++++++++-----------
.../rule/builder/TransactionRuleBuilderTest.java | 2 +-
.../mode/manager/ContextManager.java | 8 ++++----
.../context/ConfigurationContextManager.java | 6 ++++--
.../mode/metadata/MetaDataContextsFactory.java | 2 +-
.../mode/metadata/NewMetaDataContextsFactory.java | 2 +-
.../mode/manager/ContextManagerTest.java | 10 +++++-----
.../ProcessListChangedSubscriberTest.java | 2 +-
.../ConfigurationChangedSubscriberTest.java | 2 +-
.../ResourceMetaDataChangedSubscriberTest.java | 4 +---
.../subscriber/StateChangedSubscriberTest.java | 7 ++-----
.../jdbc/datasource/JDBCBackendDataSource.java | 3 ++-
.../executor/AbstractDatabaseMetaDataExecutor.java | 2 +-
.../ral/queryable/ExportStorageNodesExecutor.java | 2 +-
.../rdl/rule/NewRuleDefinitionBackendHandler.java | 3 ++-
.../rdl/rule/RuleDefinitionBackendHandler.java | 3 ++-
.../unit/AlterStorageUnitBackendHandler.java | 4 ++--
.../unit/UnregisterStorageUnitBackendHandler.java | 5 +++--
.../rql/rule/ShowRulesUsedStorageUnitExecutor.java | 2 +-
.../rql/storage/unit/ShowStorageUnitExecutor.java | 9 +++++----
.../YamlDatabaseConfigurationImportExecutor.java | 12 ++++++-----
.../jdbc/datasource/JDBCBackendDataSourceTest.java | 2 +-
.../DatabaseOperateBackendHandlerFactoryTest.java | 1 -
.../distsql/DistSQLBackendHandlerFactoryTest.java | 1 -
.../queryable/ExportStorageNodesExecutorTest.java | 4 ++--
.../ImportDatabaseConfigurationUpdaterTest.java | 5 +++++
.../ral/updatable/ImportMetaDataUpdaterTest.java | 2 +-
.../unit/AlterStorageUnitBackendHandlerTest.java | 8 ++++----
.../UnregisterStorageUnitBackendHandlerTest.java | 12 +++++------
.../SelectInformationSchemataExecutor.java | 3 ++-
.../proxy/version/ShardingSphereProxyVersion.java | 3 ++-
.../version/ShardingSphereProxyVersionTest.java | 4 ++--
.../test/it/rewrite/engine/SQLRewriterIT.java | 3 ++-
61 files changed, 135 insertions(+), 127 deletions(-)
diff --git
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporter.java
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporter.java
index 0df0998371b..19bd583fe30 100644
---
a/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporter.java
+++
b/agent/plugins/metrics/core/src/main/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporter.java
@@ -53,6 +53,6 @@ public final class ProxyMetaDataInfoExporter implements
MetricsExporter {
}
private int getStorageUnitCount(final MetaDataContexts metaDataContexts) {
- return
metaDataContexts.getMetaData().getDatabases().values().stream().map(each ->
each.getResourceMetaData().getDataSources().size()).reduce(0, Integer::sum);
+ return
metaDataContexts.getMetaData().getDatabases().values().stream().map(each ->
each.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size()).reduce(0,
Integer::sum);
}
}
diff --git
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
index c62991a5227..f26162ba87d 100644
---
a/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
+++
b/agent/plugins/metrics/core/src/test/java/org/apache/shardingsphere/agent/plugin/metrics/core/exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java
@@ -25,6 +25,7 @@ import
org.apache.shardingsphere.agent.plugin.metrics.core.fixture.collector.Met
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import
org.apache.shardingsphere.infra.metadata.database.resource.storage.StorageUnit;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -36,7 +37,6 @@ import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import javax.sql.DataSource;
import java.util.Collections;
import java.util.Optional;
@@ -75,7 +75,7 @@ class ProxyMetaDataInfoExporterTest {
private ContextManager mockContextManager() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(database.getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
mock(DataSource.class)));
+
when(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("ds_0",
mock(StorageUnit.class)));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class);
when(metaData.getDatabases()).thenReturn(Collections.singletonMap("sharding_db",
database));
diff --git
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
index b76ce9a2328..18fe7e02286 100644
---
a/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
+++
b/features/encrypt/distsql/handler/src/main/java/org/apache/shardingsphere/encrypt/distsql/handler/update/CreateEncryptRuleStatementUpdater.java
@@ -100,7 +100,7 @@ public final class CreateEncryptRuleStatementUpdater
implements RuleDefinitionCr
}
private void checkDataSources(final ShardingSphereDatabase database) {
-
ShardingSpherePreconditions.checkState(!database.getResourceMetaData().getDataSources().isEmpty(),
() -> new EmptyStorageUnitException(database.getName()));
+
ShardingSpherePreconditions.checkState(!database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty(),
() -> new EmptyStorageUnitException(database.getName()));
}
@Override
diff --git
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
index 86998457671..2ade1dc5973 100644
---
a/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
+++
b/features/readwrite-splitting/distsql/handler/src/main/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/checker/ReadwriteSplittingRuleStatementChecker.java
@@ -126,8 +126,8 @@ public final class ReadwriteSplittingRuleStatementChecker {
private static void checkDuplicateRuleNamesWithExistsDataSources(final
ShardingSphereDatabase database, final
Collection<ReadwriteSplittingRuleSegment> segments) {
Collection<String> currentRuleNames = new HashSet<>();
ResourceMetaData resourceMetaData = database.getResourceMetaData();
- if (null != resourceMetaData && null !=
resourceMetaData.getDataSources()) {
-
currentRuleNames.addAll(resourceMetaData.getDataSources().keySet());
+ if (null != resourceMetaData && null !=
resourceMetaData.getStorageUnitMetaData().getStorageUnits()) {
+
currentRuleNames.addAll(resourceMetaData.getStorageUnitMetaData().getStorageUnits().keySet());
}
currentRuleNames.addAll(getLogicDataSources(database));
Collection<String> toBeCreatedRuleNames =
segments.stream().map(ReadwriteSplittingRuleSegment::getName).filter(currentRuleNames::contains).collect(Collectors.toList());
diff --git
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
index 3da19a8b5ac..c2ccbdc0e72 100644
---
a/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
+++
b/features/readwrite-splitting/distsql/handler/src/test/java/org/apache/shardingsphere/readwritesplitting/distsql/handler/update/CreateReadwriteSplittingRuleStatementUpdaterTest.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRe
import org.apache.shardingsphere.distsql.parser.segment.AlgorithmSegment;
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.storage.StorageUnitMetaData;
import
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import
org.apache.shardingsphere.readwritesplitting.api.ReadwriteSplittingRuleConfiguration;
@@ -67,18 +68,19 @@ class CreateReadwriteSplittingRuleStatementUpdaterTest {
@BeforeEach
void before() {
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
+
when(resourceMetaData.getStorageUnitMetaData()).thenReturn(mock(StorageUnitMetaData.class));
when(database.getRuleMetaData().findRules(DataSourceContainedRule.class)).thenReturn(Collections.emptyList());
}
@Test
void assertCheckSQLStatementWithDuplicateRuleNames() {
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.emptyMap());
+
when(resourceMetaData.getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.emptyMap());
assertThrows(DuplicateRuleException.class, () ->
updater.checkSQLStatement(database, createSQLStatement("TEST"),
createCurrentRuleConfiguration()));
}
@Test
void assertCheckSQLStatementWithDuplicateResource() {
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("write_ds",
null));
+
when(resourceMetaData.getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("write_ds",
null));
assertThrows(InvalidRuleConfigurationException.class, () ->
updater.checkSQLStatement(database, createSQLStatement("write_ds", "TEST"),
createCurrentRuleConfiguration()));
}
diff --git
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/data/ShardingStatisticsTableCollector.java
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/data/ShardingStatisticsTableCollector.java
index 210c7b3b721..349e989d36a 100644
---
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/data/ShardingStatisticsTableCollector.java
+++
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/metadata/data/ShardingStatisticsTableCollector.java
@@ -81,7 +81,8 @@ public final class ShardingStatisticsTableCollector
implements ShardingSphereSta
row.add(each.getLogicTable());
row.add(dataNode.getDataSourceName());
row.add(dataNode.getTableName());
-
addTableRowsAndDataLength(shardingSphereDatabase.getResourceMetaData().getStorageTypes(),
shardingSphereDatabase.getResourceMetaData().getDataSources(), dataNode, row);
+
addTableRowsAndDataLength(shardingSphereDatabase.getResourceMetaData().getStorageTypes(),
+
shardingSphereDatabase.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
dataNode, row);
tableData.getRows().add(new ShardingSphereRowData(row));
}
}
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index 7b9f6113418..f0c73d75af9 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -122,6 +122,7 @@ public final class ShardingSphereMetaData {
globalRuleMetaData.findRules(ResourceHeldRule.class).forEach(each ->
each.closeStaleResource(databaseName));
database.getRuleMetaData().findRules(ResourceHeldRule.class).forEach(each ->
each.closeStaleResource(databaseName));
database.getRuleMetaData().findSingleRule(StaticDataSourceContainedRule.class).ifPresent(StaticDataSourceContainedRule::cleanStorageNodeDataSources);
- Optional.ofNullable(database.getResourceMetaData()).ifPresent(optional
-> optional.getDataSources().values().forEach(each ->
database.getResourceMetaData().close(each)));
+ Optional.ofNullable(database.getResourceMetaData())
+ .ifPresent(optional ->
optional.getStorageUnitMetaData().getDataSources().values().forEach(each ->
database.getResourceMetaData().close(each)));
}
}
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 e7feac8f27f..7c1a3f85461 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
@@ -172,7 +172,7 @@ public final class ShardingSphereDatabase {
* @return is completed or not
*/
public boolean isComplete() {
- return !ruleMetaData.getRules().isEmpty() &&
!resourceMetaData.getDataSources().isEmpty();
+ return !ruleMetaData.getRules().isEmpty() &&
!resourceMetaData.getStorageUnitMetaData().getStorageUnits().isEmpty();
}
/**
@@ -181,7 +181,7 @@ public final class ShardingSphereDatabase {
* @return contains data source or not
*/
public boolean containsDataSource() {
- return !resourceMetaData.getDataSources().isEmpty();
+ return
!resourceMetaData.getStorageUnitMetaData().getStorageUnits().isEmpty();
}
/**
@@ -195,7 +195,7 @@ public final class ShardingSphereDatabase {
Collection<ShardingSphereRule> databaseRules = new
LinkedList<>(ruleMetaData.getRules());
toBeReloadedRules.stream().findFirst().ifPresent(optional -> {
databaseRules.removeAll(toBeReloadedRules);
- databaseRules.add(((MutableDataNodeRule)
optional).reloadRule(ruleConfig, name, resourceMetaData.getDataSources(),
databaseRules));
+ databaseRules.add(((MutableDataNodeRule)
optional).reloadRule(ruleConfig, name,
resourceMetaData.getStorageUnitMetaData().getDataSources(), databaseRules));
});
ruleMetaData.getRules().clear();
ruleMetaData.getRules().addAll(databaseRules);
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 c8fc7350ea3..c892b29af07 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
@@ -64,15 +64,6 @@ public final class ResourceMetaData {
storageUnitMetaData = new StorageUnitMetaData(databaseName,
storageNodeDataSources, propsMap, storageResource.getStorageUnitNodeMappers());
}
- /**
- * Get data sources.
- *
- * @return data sources
- */
- public Map<String, DataSource> getDataSources() {
- return storageUnitMetaData.getDataSources();
- }
-
/**
* Get storage types.
*
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/ShardingSphereTableDataCollectorUtils.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/ShardingSphereTableDataCollectorUtils.java
index 1ef6f48fc67..b3413d095fa 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/ShardingSphereTableDataCollectorUtils.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/collector/ShardingSphereTableDataCollectorUtils.java
@@ -57,7 +57,7 @@ public final class ShardingSphereTableDataCollectorUtils {
return Collections.emptyList();
}
Collection<ShardingSphereRowData> result = new LinkedList<>();
- for (DataSource each :
shardingSphereDatabase.getResourceMetaData().getDataSources().values()) {
+ for (DataSource each :
shardingSphereDatabase.getResourceMetaData().getStorageUnitMetaData().getDataSources().values())
{
try (
Connection connection = each.getConnection();
Statement statement = connection.createStatement();
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 bee8ad614de..4ddea502a4d 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
@@ -45,6 +45,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -57,7 +58,7 @@ class ShardingSphereMetaDataTest {
@Test
void assertAddDatabase() {
ResourceHeldRule<?> globalResourceHeldRule =
mock(ResourceHeldRule.class);
- ShardingSphereDatabase database =
mockDatabase(mock(ResourceMetaData.class), new MockedDataSource(),
mock(ResourceHeldRule.class));
+ ShardingSphereDatabase database =
mockDatabase(mock(ResourceMetaData.class, RETURNS_DEEP_STUBS), new
MockedDataSource(), mock(ResourceHeldRule.class));
DatabaseType databaseType = mock(DatabaseType.class);
ConfigurationProperties configProps = new ConfigurationProperties(new
Properties());
when(ShardingSphereDatabase.create("foo_db", databaseType,
configProps)).thenReturn(database);
@@ -71,7 +72,7 @@ class ShardingSphereMetaDataTest {
@Test
void assertDropDatabase() {
- ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
+ ResourceMetaData resourceMetaData = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
DataSource dataSource = new MockedDataSource();
ResourceHeldRule<?> databaseResourceHeldRule =
mock(ResourceHeldRule.class);
ResourceHeldRule<?> globalResourceHeldRule =
mock(ResourceHeldRule.class);
@@ -88,7 +89,7 @@ class ShardingSphereMetaDataTest {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class);
when(result.getName()).thenReturn("foo_db");
when(result.getResourceMetaData()).thenReturn(resourceMetaData);
-
when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_db",
dataSource));
+
when(result.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_db",
dataSource));
when(result.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.singleton(databaseResourceHeldRule)));
return result;
}
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
index 2819cc02d62..828a3400604 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/AlterTableStatementSchemaRefresher.java
@@ -66,7 +66,7 @@ public final class AlterTableStatementSchemaRefresher
implements MetaDataRefresh
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getDataSources(), ruleMetaData.getRules(),
props, schemaName);
+ database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
return Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName))
.orElseGet(() -> new ShardingSphereTable(tableName,
Collections.emptyList(), Collections.emptyList(), Collections.emptyList()));
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
index 603e03df875..db732e7a98b 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/CreateTableStatementSchemaRefresher.java
@@ -54,7 +54,7 @@ public final class CreateTableStatementSchemaRefresher
implements MetaDataRefres
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getDataSources(), ruleMetaData.getRules(),
props, schemaName);
+ database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
Optional<ShardingSphereTable> actualTableMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName));
if (actualTableMetaData.isPresent()) {
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
index 8324062b68f..62bf4aba378 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/table/RenameTableStatementSchemaRefresher.java
@@ -64,7 +64,7 @@ public final class RenameTableStatementSchemaRefresher
implements MetaDataRefres
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, tableName));
}
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getDataSources(), ruleMetaData.getRules(),
props, schemaName);
+ database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(tableName), material);
return Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(tableName))
.orElseGet(() -> new ShardingSphereTable(tableName,
Collections.emptyList(), Collections.emptyList(), Collections.emptyList()));
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
index b7607fac5d3..84f9e3aa36b 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/AlterViewStatementSchemaRefresher.java
@@ -78,7 +78,7 @@ public final class AlterViewStatementSchemaRefresher
implements MetaDataRefreshe
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, viewName));
}
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getDataSources(), ruleMetaData.getRules(),
props, schemaName);
+ database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(viewName), material);
Optional<ShardingSphereTable> actualViewMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(viewName));
ShardingSphereSchema result = new ShardingSphereSchema();
diff --git
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
index f936013eab8..a95506639c3 100644
---
a/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
+++
b/infra/context/src/main/java/org/apache/shardingsphere/infra/connection/refresher/type/view/CreateViewStatementSchemaRefresher.java
@@ -54,7 +54,7 @@ public final class CreateViewStatementSchemaRefresher
implements MetaDataRefresh
ruleMetaData.findRules(MutableDataNodeRule.class).forEach(each ->
each.put(logicDataSourceNames.iterator().next(), schemaName, viewName));
}
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
- database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getDataSources(), ruleMetaData.getRules(),
props, schemaName);
+ database.getResourceMetaData().getStorageTypes(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
ruleMetaData.getRules(), props, schemaName);
Map<String, ShardingSphereSchema> schemaMap =
GenericSchemaBuilder.build(Collections.singletonList(viewName), material);
Optional<ShardingSphereTable> actualTableMetaData =
Optional.ofNullable(schemaMap.get(schemaName)).map(optional ->
optional.getTable(viewName));
if (actualTableMetaData.isPresent()) {
diff --git
a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/AllSQLRouteExecutor.java
b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/AllSQLRouteExecutor.java
index ad5381e5689..cc22cbd17fc 100644
---
a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/AllSQLRouteExecutor.java
+++
b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/AllSQLRouteExecutor.java
@@ -36,7 +36,7 @@ public final class AllSQLRouteExecutor implements
SQLRouteExecutor {
@Override
public RouteContext route(final ConnectionContext connectionContext, final
QueryContext queryContext, final RuleMetaData globalRuleMetaData, final
ShardingSphereDatabase database) {
RouteContext result = new RouteContext();
- for (String each :
database.getResourceMetaData().getDataSources().keySet()) {
+ for (String each :
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().keySet())
{
result.getRouteUnits().add(new RouteUnit(new RouteMapper(each,
each), Collections.emptyList()));
}
return result;
diff --git
a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutor.java
b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutor.java
index e755297f9cf..1f646fbec94 100644
---
a/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutor.java
+++
b/infra/route/src/main/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutor.java
@@ -59,7 +59,7 @@ public final class PartialSQLRouteExecutor implements
SQLRouteExecutor {
@SuppressWarnings({"unchecked", "rawtypes"})
public RouteContext route(final ConnectionContext connectionContext, final
QueryContext queryContext, final RuleMetaData globalRuleMetaData, final
ShardingSphereDatabase database) {
RouteContext result = new RouteContext();
- Optional<String> dataSourceName =
findDataSourceByHint(queryContext.getHintValueContext(),
database.getResourceMetaData().getDataSources());
+ Optional<String> dataSourceName =
findDataSourceByHint(queryContext.getHintValueContext(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources());
if (dataSourceName.isPresent()) {
result.getRouteUnits().add(new RouteUnit(new
RouteMapper(dataSourceName.get(), dataSourceName.get()),
Collections.emptyList()));
return result;
@@ -71,8 +71,8 @@ public final class PartialSQLRouteExecutor implements
SQLRouteExecutor {
entry.getValue().decorateRouteContext(result, queryContext,
database, entry.getKey(), props, connectionContext);
}
}
- if (result.getRouteUnits().isEmpty() && 1 ==
database.getResourceMetaData().getDataSources().size()) {
- String singleDataSourceName =
database.getResourceMetaData().getDataSources().keySet().iterator().next();
+ if (result.getRouteUnits().isEmpty() && 1 ==
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size())
{
+ String singleDataSourceName =
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().keySet().iterator().next();
result.getRouteUnits().add(new RouteUnit(new
RouteMapper(singleDataSourceName, singleDataSourceName),
Collections.emptyList()));
}
return result;
diff --git
a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/AllSQLRouteExecutorTest.java
b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/AllSQLRouteExecutorTest.java
index 00c213bd5b3..cce673b1239 100644
---
a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/AllSQLRouteExecutorTest.java
+++
b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/AllSQLRouteExecutorTest.java
@@ -42,7 +42,7 @@ class AllSQLRouteExecutorTest {
void assertRouteSuccess() {
String name = "test";
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(database.getResourceMetaData().getDataSources().keySet()).thenReturn(Stream.of(name).collect(Collectors.toSet()));
+
when(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().keySet()).thenReturn(Stream.of(name).collect(Collectors.toSet()));
AllSQLRouteExecutor allSQLRouteExecutor = new AllSQLRouteExecutor();
RouteContext actual = allSQLRouteExecutor.route(new
ConnectionContext(), mock(QueryContext.class), mock(RuleMetaData.class),
database);
assertThat(actual.getRouteUnits().size(), is(1));
diff --git
a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutorTest.java
b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutorTest.java
index 03f58de8a9e..3d4ae1ba633 100644
---
a/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutorTest.java
+++
b/infra/route/src/test/java/org/apache/shardingsphere/infra/route/engine/impl/PartialSQLRouteExecutorTest.java
@@ -68,7 +68,7 @@ class PartialSQLRouteExecutorTest {
Map<String, DataSource> dataSourceMap = new HashMap<>();
dataSourceMap.put("ds_0", null);
dataSourceMap.put("ds_1", null);
-
when(database.getResourceMetaData().getDataSources()).thenReturn(dataSourceMap);
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
}
@Test
diff --git
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
index 88966cdde00..fd6cb10a630 100644
---
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
+++
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/core/rule/GlobalClockRule.java
@@ -60,8 +60,8 @@ public final class GlobalClockRule implements GlobalRule {
}
private Collection<DataSource> getDataSources(final Map<String,
ShardingSphereDatabase> databases) {
- return databases.values().stream().filter(each ->
!each.getResourceMetaData().getDataSources().isEmpty())
- .flatMap(each ->
each.getResourceMetaData().getDataSources().values().stream()).collect(Collectors.toList());
+ return databases.values().stream().filter(each ->
!each.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty())
+ .flatMap(each ->
each.getResourceMetaData().getStorageUnitMetaData().getDataSources().values().stream()).collect(Collectors.toList());
}
/**
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/factory/ExternalMetaDataFactoryTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/factory/ExternalMetaDataFactoryTest.java
index b4341565049..f5a5b39bce5 100644
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/factory/ExternalMetaDataFactoryTest.java
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/factory/ExternalMetaDataFactoryTest.java
@@ -41,7 +41,7 @@ class ExternalMetaDataFactoryTest {
DatabaseConfiguration databaseConfig = new
DataSourceProvidedDatabaseConfiguration(Collections.emptyMap(),
Collections.emptyList());
ShardingSphereDatabase actual =
ExternalMetaDataFactory.create("foo_db", databaseConfig, new
ConfigurationProperties(new Properties()), mock(InstanceContext.class));
assertThat(actual.getName(), is("foo_db"));
- assertTrue(actual.getResourceMetaData().getDataSources().isEmpty());
+
assertTrue(actual.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty());
}
@Test
@@ -50,7 +50,7 @@ class ExternalMetaDataFactoryTest {
Map<String, ShardingSphereDatabase> actual =
ExternalMetaDataFactory.create(
Collections.singletonMap("foo_db", databaseConfig), new
ConfigurationProperties(new Properties()), mock(InstanceContext.class));
assertTrue(actual.containsKey("foo_db"));
-
assertTrue(actual.get("foo_db").getResourceMetaData().getDataSources().isEmpty());
+
assertTrue(actual.get("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty());
}
@Test
@@ -59,6 +59,6 @@ class ExternalMetaDataFactoryTest {
Map<String, ShardingSphereDatabase> actual =
ExternalMetaDataFactory.create(
Collections.singletonMap("FOO_DB", databaseConfig), new
ConfigurationProperties(new Properties()), mock(InstanceContext.class));
assertTrue(actual.containsKey("foo_db"));
-
assertTrue(actual.get("foo_db").getResourceMetaData().getDataSources().isEmpty());
+
assertTrue(actual.get("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty());
}
}
diff --git
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
index 0cd2b288b36..d6cf5845ce3 100644
---
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
+++
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/route/SingleSQLRouter.java
@@ -47,7 +47,7 @@ public final class SingleSQLRouter implements
SQLRouter<SingleRule> {
@Override
public RouteContext createRouteContext(final QueryContext queryContext,
final RuleMetaData globalRuleMetaData, final ShardingSphereDatabase database,
final SingleRule rule,
final ConfigurationProperties
props, final ConnectionContext connectionContext) {
- if (1 == database.getResourceMetaData().getDataSources().size()) {
+ if (1 ==
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size())
{
return createSingleDataSourceRouteContext(rule, database);
}
RouteContext result = new RouteContext();
@@ -82,7 +82,7 @@ public final class SingleSQLRouter implements
SQLRouter<SingleRule> {
private RouteContext createSingleDataSourceRouteContext(final SingleRule
rule, final ShardingSphereDatabase database) {
String logicDataSource = rule.getDataSourceNames().iterator().next();
- String actualDataSource =
database.getResourceMetaData().getDataSources().keySet().iterator().next();
+ String actualDataSource =
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().keySet().iterator().next();
RouteContext result = new RouteContext();
result.getRouteUnits().add(new RouteUnit(new
RouteMapper(logicDataSource, actualDataSource), Collections.emptyList()));
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 0554299ba31..23236286ace 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
@@ -24,6 +24,7 @@ import
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.datanode.DataNode;
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.storage.StorageUnit;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.route.SQLRouter;
@@ -82,7 +83,7 @@ class SingleSQLRouterTest {
private ShardingSphereDatabase mockSingleDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
new MockedDataSource()));
+
when(result.getResourceMetaData().getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
mock(StorageUnit.class)));
return result;
}
@@ -104,7 +105,7 @@ class SingleSQLRouterTest {
private ShardingSphereDatabase mockReadwriteSplittingDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
when(result.getName()).thenReturn(" db_schema");
-
when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("write_ds",
new MockedDataSource()));
+
when(result.getResourceMetaData().getStorageUnitMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("write_ds",
mock(StorageUnit.class)));
return result;
}
@@ -148,7 +149,7 @@ class SingleSQLRouterTest {
Map<String, DataSource> dataSourceMap = new HashMap<>(2, 1F);
dataSourceMap.put("ds_0", new MockedDataSource());
dataSourceMap.put("ds_1", new MockedDataSource());
-
when(result.getResourceMetaData().getDataSources()).thenReturn(dataSourceMap);
+
when(result.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
when(result.getName()).thenReturn(DefaultDatabase.LOGIC_NAME);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
when(schema.containsTable("t_order")).thenReturn(true);
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
index d3d23805cdc..8f4897a99ee 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/query/ShowUnloadedSingleTableExecutor.java
@@ -60,7 +60,8 @@ public final class ShowUnloadedSingleTableExecutor implements
RQLExecutor<ShowUn
private Map<String, Collection<DataNode>> getActualDataNodes(final
ShardingSphereDatabase database) {
ResourceMetaData resourceMetaData = database.getResourceMetaData();
- Map<String, DataSource> aggregateDataSourceMap =
SingleTableLoadUtils.getAggregatedDataSourceMap(resourceMetaData.getDataSources(),
database.getRuleMetaData().getRules());
+ Map<String, DataSource> aggregateDataSourceMap =
SingleTableLoadUtils.getAggregatedDataSourceMap(
+ resourceMetaData.getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules());
Collection<String> excludedTables =
SingleTableLoadUtils.getExcludedTables(database.getRuleMetaData().getRules());
return SingleTableDataNodeLoader.load(database.getName(),
database.getProtocolType(), aggregateDataSourceMap, excludedTables);
}
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
index ece0779d4af..63a134642e3 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/LoadSingleTableStatementUpdater.java
@@ -112,7 +112,8 @@ public final class LoadSingleTableStatementUpdater
implements RuleDefinitionCrea
return;
}
ResourceMetaData resourceMetaData = database.getResourceMetaData();
- Map<String, DataSource> aggregateDataSourceMap =
SingleTableLoadUtils.getAggregatedDataSourceMap(resourceMetaData.getDataSources(),
database.getRuleMetaData().getRules());
+ Map<String, DataSource> aggregateDataSourceMap =
SingleTableLoadUtils.getAggregatedDataSourceMap(
+ resourceMetaData.getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules());
Map<String, Map<String, Collection<String>>> actualTableNodes = new
LinkedHashMap<>();
for (String each : requiredDataSources) {
Map<String, Collection<String>> schemaTableNames =
SingleTableDataNodeLoader.loadSchemaTableNames(database.getName(),
database.getProtocolType(), aggregateDataSourceMap.get(each), each);
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
index 6a1dfbc2f86..f353939f286 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/SetDefaultSingleTableStorageUnitStatementUpdater.java
@@ -40,7 +40,7 @@ public final class
SetDefaultSingleTableStorageUnitStatementUpdater implements R
private void checkStorageUnitExist(final ShardingSphereDatabase database,
final SetDefaultSingleTableStorageUnitStatement sqlStatement) {
if (!Strings.isNullOrEmpty(sqlStatement.getDefaultStorageUnit())) {
- Collection<String> storageUnitNames =
database.getResourceMetaData().getDataSources().keySet();
+ Collection<String> storageUnitNames =
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().keySet();
ShardingSpherePreconditions.checkState(storageUnitNames.contains(sqlStatement.getDefaultStorageUnit()),
() -> new
MissingRequiredStorageUnitsException(database.getName(),
Collections.singleton(sqlStatement.getDefaultStorageUnit())));
}
diff --git
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
index ee400676678..9477e5ba0d9 100644
---
a/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
+++
b/kernel/transaction/core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
@@ -71,7 +71,7 @@ public final class TransactionRule implements GlobalRule,
ResourceHeldRule<Shard
Map<String, DatabaseType> databaseTypes = new
LinkedHashMap<>(databases.size(), 1F);
for (Entry<String, ShardingSphereDatabase> entry :
databases.entrySet()) {
ShardingSphereDatabase database = entry.getValue();
- database.getResourceMetaData().getDataSources().forEach((key,
value) -> dataSourceMap.put(database.getName() + "." + key, value));
+
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().forEach((key,
value) -> dataSourceMap.put(database.getName() + "." + key, value));
database.getResourceMetaData().getStorageTypes().forEach((key,
value) -> databaseTypes.put(database.getName() + "." + key, value));
}
if (dataSourceMap.isEmpty()) {
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 a62016760ba..677258b7e23 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
@@ -37,6 +37,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -61,16 +62,14 @@ class TransactionRuleTest {
assertThat(actual.getDatabases().size(), is(2));
assertTrue(actual.getDatabases().containsKey(SHARDING_DB_1));
ResourceMetaData resourceMetaData1 =
actual.getDatabases().get(SHARDING_DB_1).getResourceMetaData();
- assertThat(resourceMetaData1.getDataSources().size(), is(2));
- assertTrue(resourceMetaData1.getDataSources().containsKey("ds_0"));
- assertTrue(resourceMetaData1.getDataSources().containsKey("ds_1"));
- assertThat(resourceMetaData1.getStorageTypes().size(), is(2));
+
assertThat(resourceMetaData1.getStorageUnitMetaData().getDataSources().size(),
is(2));
+
assertTrue(resourceMetaData1.getStorageUnitMetaData().getDataSources().containsKey("ds_0"));
+
assertTrue(resourceMetaData1.getStorageUnitMetaData().getDataSources().containsKey("ds_1"));
assertTrue(actual.getDatabases().containsKey(SHARDING_DB_2));
ResourceMetaData resourceMetaData2 =
actual.getDatabases().get(SHARDING_DB_2).getResourceMetaData();
- assertThat(resourceMetaData2.getDataSources().size(), is(2));
- assertTrue(resourceMetaData2.getDataSources().containsKey("ds_0"));
- assertTrue(resourceMetaData2.getDataSources().containsKey("ds_1"));
- assertThat(resourceMetaData2.getStorageTypes().size(), is(2));
+
assertThat(resourceMetaData2.getStorageUnitMetaData().getDataSources().size(),
is(2));
+
assertTrue(resourceMetaData2.getStorageUnitMetaData().getDataSources().containsKey("ds_0"));
+
assertTrue(resourceMetaData2.getStorageUnitMetaData().getDataSources().containsKey("ds_1"));
assertThat(actual.getResource().getTransactionManager(TransactionType.XA),
instanceOf(ShardingSphereTransactionManagerFixture.class));
}
@@ -99,11 +98,11 @@ class TransactionRuleTest {
}
private ResourceMetaData createResourceMetaData() {
- ResourceMetaData result = mock(ResourceMetaData.class);
+ ResourceMetaData result = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
Map<String, DataSource> dataSourceMap = new LinkedHashMap<>(2, 1F);
dataSourceMap.put("ds_0", new MockedDataSource());
dataSourceMap.put("ds_1", new MockedDataSource());
- when(result.getDataSources()).thenReturn(dataSourceMap);
+
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
Map<String, DatabaseType> databaseTypes = new LinkedHashMap<>(2, 1F);
databaseTypes.put("ds_0",
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
databaseTypes.put("ds_1",
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
@@ -120,11 +119,11 @@ class TransactionRuleTest {
}
private ResourceMetaData createAddResourceMetaData() {
- ResourceMetaData result = mock(ResourceMetaData.class);
+ ResourceMetaData result = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
Map<String, DataSource> dataSourceMap = new LinkedHashMap<>(2, 1F);
dataSourceMap.put("ds_0", new MockedDataSource());
dataSourceMap.put("ds_1", new MockedDataSource());
- when(result.getDataSources()).thenReturn(dataSourceMap);
+
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(dataSourceMap);
Map<String, DatabaseType> databaseTypes = new LinkedHashMap<>(2, 1F);
databaseTypes.put("ds_0",
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"));
databaseTypes.put("ds_1",
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
diff --git
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
index fdff2da88c1..252f6d72b4d 100644
---
a/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
+++
b/kernel/transaction/core/src/test/java/org/apache/shardingsphere/transaction/rule/builder/TransactionRuleBuilderTest.java
@@ -49,7 +49,7 @@ class TransactionRuleBuilderTest {
new
RuleMetaData(Collections.singletonList(mock(ShardingSphereRule.class))),
Collections.singletonMap("test", mock(ShardingSphereSchema.class)));
TransactionRule rule = new TransactionRuleBuilder().build(ruleConfig,
Collections.singletonMap(DefaultDatabase.LOGIC_NAME, database),
mock(ConfigurationProperties.class));
assertNotNull(rule.getConfiguration());
-
assertThat(rule.getDatabases().get("logic_db").getResourceMetaData().getDataSources().size(),
is(2));
+
assertThat(rule.getDatabases().get("logic_db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size(),
is(2));
}
private Map<String, DataSource> createDataSourceMap() {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 007aa7b580a..2d547c32e39 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -105,7 +105,7 @@ public final class ContextManager implements AutoCloseable {
* @return data source map
*/
public Map<String, DataSource> getDataSourceMap(final String databaseName)
{
- return
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ return
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
}
/**
@@ -182,7 +182,7 @@ public final class ContextManager implements AutoCloseable {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
database.reloadRules(MutableDataNodeRule.class);
GenericSchemaBuilderMaterial material = new
GenericSchemaBuilderMaterial(database.getProtocolType(),
database.getResourceMetaData().getStorageTypes(),
- Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getDataSources().get(dataSourceName)),
+ Collections.singletonMap(dataSourceName,
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().get(dataSourceName)),
database.getRuleMetaData().getRules(),
metaDataContexts.get().getMetaData().getProps(), schemaName);
ShardingSphereSchema result =
GenericSchemaBuilder.build(material).get(schemaName);
result.getViews().putAll(metaDataContexts.get().getPersistService().getDatabaseMetaDataService().getViewMetaDataPersistService().load(database.getName(),
schemaName));
@@ -197,7 +197,7 @@ public final class ContextManager implements AutoCloseable {
* @param tableName to be reloaded table name
*/
public void reloadTable(final String databaseName, final String
schemaName, final String tableName) {
- Map<String, DataSource> dataSourceMap =
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ Map<String, DataSource> dataSourceMap =
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
try {
reloadTable(databaseName, schemaName, tableName, dataSourceMap);
} catch (final SQLException ex) {
@@ -215,7 +215,7 @@ public final class ContextManager implements AutoCloseable {
*/
public void reloadTable(final String databaseName, final String
schemaName, final String dataSourceName, final String tableName) {
Map<String, DataSource> dataSourceMap = Collections.singletonMap(
- dataSourceName,
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources().get(dataSourceName));
+ dataSourceName,
metaDataContexts.get().getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources().get(dataSourceName));
try {
reloadTable(databaseName, schemaName, tableName, dataSourceMap);
} catch (final SQLException ex) {
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 1dfbe5f22da..2329878a646 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
@@ -173,7 +173,8 @@ public final class ConfigurationContextManager {
ShardingSphereDatabase database =
metaDataContexts.get().getMetaData().getDatabase(databaseName);
Collection<ShardingSphereRule> rules = new
LinkedList<>(database.getRuleMetaData().getRules());
rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
- rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getResourceMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig, instanceContext));
+ rules.addAll(DatabaseRulesBuilder.build(databaseName,
+
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig, instanceContext));
refreshMetadata(databaseName, database, rules);
} catch (final SQLException ex) {
log.error("Alter database: {} rule configurations failed",
databaseName, ex);
@@ -192,7 +193,8 @@ public final class ConfigurationContextManager {
Collection<ShardingSphereRule> rules = new
LinkedList<>(database.getRuleMetaData().getRules());
rules.removeIf(each ->
each.getConfiguration().getClass().isAssignableFrom(ruleConfig.getClass()));
if (isNotEmptyConfig(ruleConfig)) {
- rules.addAll(DatabaseRulesBuilder.build(databaseName,
database.getResourceMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig, instanceContext));
+ rules.addAll(DatabaseRulesBuilder.build(databaseName,
+
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig, instanceContext));
}
refreshMetadata(databaseName, database, rules);
} catch (final SQLException ex) {
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index e4d73ddc0bd..7a7a2d8e0c3 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -146,7 +146,7 @@ public final class MetaDataContextsFactory {
for (Entry<String, ? extends DatabaseConfiguration> entry :
param.getDatabaseConfigs().entrySet()) {
String databaseName = entry.getKey();
metadataContexts.getPersistService().persistConfigurations(entry.getKey(),
entry.getValue(),
-
metadataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources(),
+
metadataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources(),
metadataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules());
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
index 2b117a0d76a..199911a512d 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/NewMetaDataContextsFactory.java
@@ -148,7 +148,7 @@ public final class NewMetaDataContextsFactory {
for (Entry<String, ? extends DatabaseConfiguration> entry :
param.getDatabaseConfigs().entrySet()) {
String databaseName = entry.getKey();
metadataContexts.getPersistService().persistConfigurations(entry.getKey(),
entry.getValue(),
-
metadataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources(),
+
metadataContexts.getMetaData().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources(),
metadataContexts.getMetaData().getDatabase(databaseName).getRuleMetaData().getRules());
}
}
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 c5bda1d34de..7c5ecec3fa0 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
@@ -241,7 +241,7 @@ class ContextManagerTest {
when(metaDataContexts.getMetaData().getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Collections.emptyList()));
contextManager.getConfigurationContextManager().alterDataSourceUnitsConfiguration("foo_db",
Collections.singletonMap("foo_ds", new
DataSourcePoolProperties(MockedDataSource.class.getName(),
createProperties("test", "test"))));
-
assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getDataSources().size(),
is(3));
+
assertThat(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size(),
is(3));
assertAlteredDataSource((MockedDataSource)
contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")
.getResourceMetaData().getStorageNodeDataSources().get(new
StorageNode("foo_ds")));
}
@@ -251,7 +251,7 @@ class ContextManagerTest {
Map<String, DataSource> originalDataSources = new LinkedHashMap<>(2,
1F);
originalDataSources.put("ds_1", new MockedDataSource());
originalDataSources.put("ds_2", new MockedDataSource());
- when(result.getDataSources()).thenReturn(originalDataSources);
+
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(originalDataSources);
Map<StorageNode, DataSource> storageNodeDataSourceMap =
StorageResourceUtils.getStorageNodeDataSources(originalDataSources);
Map<String, StorageUnit> storageUnits = new LinkedHashMap<>(2, 1F);
Map<String, StorageUnitNodeMapper> storageUnitNodeMappers =
StorageResourceUtils.getStorageUnitNodeMappers(originalDataSources);
@@ -285,7 +285,6 @@ class ContextManagerTest {
@Test
void assertReloadSchema() {
-
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
new MockedDataSource()));
when(metaDataContexts.getMetaData().getDatabase("foo_db").getName()).thenReturn("foo_db");
DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
MetaDataPersistService persistService =
mock(MetaDataPersistService.class);
@@ -297,7 +296,8 @@ class ContextManagerTest {
@Test
void assertReloadTable() {
-
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
new MockedDataSource()));
+
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getDataSources())
+ .thenReturn(Collections.singletonMap("foo_ds", new
MockedDataSource()));
when(metaDataContexts.getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
DatabaseMetaDataPersistService databaseMetaDataPersistService =
mock(DatabaseMetaDataPersistService.class, RETURNS_DEEP_STUBS);
@@ -305,7 +305,7 @@ class ContextManagerTest {
when(persistService.getDatabaseMetaDataService()).thenReturn(databaseMetaDataPersistService);
when(metaDataContexts.getPersistService()).thenReturn(persistService);
contextManager.reloadTable("foo_db", "foo_schema", "foo_table");
-
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getDataSources().containsKey("foo_ds"));
+
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getDataSources().containsKey("foo_ds"));
}
private Map<String, Object> createProperties(final String username, final
String password) {
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
index 66fc5fc3292..c022e300b39 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/registry/process/subscriber/ProcessListChangedSubscriberTest.java
@@ -98,7 +98,7 @@ class ProcessListChangedSubscriberTest {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
- when(database.getResourceMetaData().getDataSources()).thenReturn(new
LinkedHashMap<>());
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(new
LinkedHashMap<>());
when(database.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "MySQL")));
when(database.getSchemas()).thenReturn(Collections.singletonMap("foo_schema",
new ShardingSphereSchema()));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"MySQL"));
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
index 6421832f39f..f09a18e67c6 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ConfigurationChangedSubscriberTest.java
@@ -135,7 +135,7 @@ class ConfigurationChangedSubscriberTest {
@Test
void assertRenewForDataSourceChanged() {
subscriber.renew(new DataSourceUnitsChangedEvent("db", "0",
createChangedDataSourcePoolPropertiesMap()));
-
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("db").getResourceMetaData().getDataSources().containsKey("ds_2"));
+
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("db").getResourceMetaData().getStorageUnitMetaData().getStorageUnits().containsKey("ds_2"));
}
private Map<String, DataSourcePoolProperties>
createChangedDataSourcePoolPropertiesMap() {
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
index 27ccb8acd90..69f62bcf9e5 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/ResourceMetaDataChangedSubscriberTest.java
@@ -100,8 +100,6 @@ class ResourceMetaDataChangedSubscriberTest {
private Map<String, ShardingSphereDatabase> createDatabases() {
when(database.getName()).thenReturn("db");
- when(database.getResourceMetaData().getDataSources()).thenReturn(new
LinkedHashMap<>());
-
when(database.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "FIXTURE")));
when(database.getSchemas()).thenReturn(Collections.singletonMap("foo_schema",
new ShardingSphereSchema()));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
when(database.getSchema("foo_schema")).thenReturn(mock(ShardingSphereSchema.class));
@@ -116,7 +114,7 @@ class ResourceMetaDataChangedSubscriberTest {
when(persistService.getDataSourceUnitService().load("db_added")).thenReturn(createDataSourcePoolPropertiesMap());
when(persistService.getDatabaseRulePersistService().load("db_added")).thenReturn(Collections.emptyList());
subscriber.renew(new DatabaseAddedEvent("db_added"));
-
assertNotNull(contextManager.getMetaDataContexts().getMetaData().getDatabase("db_added").getResourceMetaData().getDataSources());
+
assertNotNull(contextManager.getMetaDataContexts().getMetaData().getDatabase("db_added").getResourceMetaData().getStorageUnitMetaData().getStorageUnits());
}
private Map<String, DataSourcePoolProperties>
createDataSourcePoolPropertiesMap() {
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
index e46b6839056..30191e958b5 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/subscriber/StateChangedSubscriberTest.java
@@ -20,7 +20,6 @@ package
org.apache.shardingsphere.mode.manager.cluster.coordinator.subscriber;
import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
import
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
@@ -30,10 +29,11 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.QualifiedDatabas
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.rule.identifier.type.ResourceHeldRule;
import
org.apache.shardingsphere.infra.rule.identifier.type.StaticDataSourceContainedRule;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.infra.state.cluster.ClusterState;
+import org.apache.shardingsphere.infra.state.datasource.DataSourceState;
import org.apache.shardingsphere.infra.state.instance.InstanceState;
import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
-import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.event.storage.StorageNodeDataSource;
import
org.apache.shardingsphere.mode.event.storage.StorageNodeDataSourceChangedEvent;
import org.apache.shardingsphere.mode.event.storage.StorageNodeRole;
@@ -65,7 +65,6 @@ import org.mockito.quality.Strictness;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
-import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Objects;
@@ -107,8 +106,6 @@ class StateChangedSubscriberTest {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
- when(database.getResourceMetaData().getDataSources()).thenReturn(new
LinkedHashMap<>());
-
when(database.getResourceMetaData().getStorageTypes()).thenReturn(Collections.singletonMap("ds_0",
TypedSPILoader.getService(DatabaseType.class, "FIXTURE")));
when(database.getSchemas()).thenReturn(Collections.singletonMap("foo_schema",
new ShardingSphereSchema()));
when(database.getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
when(database.getSchema("foo_schema")).thenReturn(mock(ShardingSphereSchema.class));
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSource.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSource.java
index 4c3a45a1187..07cb4218717 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSource.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSource.java
@@ -68,7 +68,8 @@ public final class JDBCBackendDataSource implements
BackendDataSource {
@SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
public List<Connection> getConnections(final String databaseName, final
String dataSourceName,
final int connectionSize, final
ConnectionMode connectionMode, final TransactionType transactionType) throws
SQLException {
- DataSource dataSource =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources().get(dataSourceName);
+ DataSource dataSource =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()
+
.getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources().get(dataSourceName);
if (dataSourceName.contains(".")) {
String dataSourceStr = dataSourceName.split("\\.")[0];
if
(GlobalDataSourceRegistry.getInstance().getCachedDataSources().containsKey(dataSourceStr))
{
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
index f65543f9aa4..c37aab7c5b0 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/executor/AbstractDatabaseMetaDataExecutor.java
@@ -161,7 +161,7 @@ public abstract class AbstractDatabaseMetaDataExecutor
implements DatabaseAdminQ
@Override
protected void processMetaData(final String databaseName, final
Consumer<ResultSet> callback) throws SQLException {
ResourceMetaData resourceMetaData =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData();
- Optional<Entry<String, DataSource>> dataSourceEntry =
resourceMetaData.getDataSources().entrySet().stream().findFirst();
+ Optional<Entry<String, DataSource>> dataSourceEntry =
resourceMetaData.getStorageUnitMetaData().getDataSources().entrySet().stream().findFirst();
if (!dataSourceEntry.isPresent()) {
return;
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutor.java
index 575d012aab9..f12e20e3480 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutor.java
@@ -87,7 +87,7 @@ public final class ExportStorageNodesExecutor implements
MetaDataRequiredQueryab
private Map<String, Collection<ExportedStorageNode>>
generateDatabaseExportStorageNodesData(final ShardingSphereDatabase database) {
Map<String, ExportedStorageNode> storageNodes = new LinkedHashMap<>();
- for (Entry<String, DataSource> entry :
database.getResourceMetaData().getDataSources().entrySet()) {
+ for (Entry<String, DataSource> entry :
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().entrySet())
{
ConnectionProperties connectionProps =
database.getResourceMetaData().getConnectionProperties(entry.getKey());
String databaseInstanceIp = getDatabaseInstanceIp(connectionProps);
if (storageNodes.containsKey(databaseInstanceIp)) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
index 5185efcb505..24ad12ffa15 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/NewRuleDefinitionBackendHandler.java
@@ -129,7 +129,8 @@ public final class NewRuleDefinitionBackendHandler<T
extends RuleDefinitionState
@SuppressWarnings({"unchecked", "rawtypes"})
private RuleConfiguration decorateRuleConfiguration(final
ShardingSphereDatabase database, final RuleConfiguration ruleConfig) {
Optional<RuleConfigurationDecorator> decorator =
TypedSPILoader.findService(RuleConfigurationDecorator.class,
ruleConfig.getClass());
- return decorator.map(optional -> optional.decorate(database.getName(),
database.getResourceMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig)).orElse(ruleConfig);
+ return decorator.map(optional -> optional.decorate(database.getName(),
+
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig)).orElse(ruleConfig);
}
@SuppressWarnings({"rawtypes", "unchecked"})
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
index 0eb13c5eaa5..8181ed052df 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/rule/RuleDefinitionBackendHandler.java
@@ -101,7 +101,8 @@ public final class RuleDefinitionBackendHandler<T extends
RuleDefinitionStatemen
@SuppressWarnings({"unchecked", "rawtypes"})
private RuleConfiguration decorateRuleConfiguration(final
ShardingSphereDatabase database, final RuleConfiguration ruleConfig) {
Optional<RuleConfigurationDecorator> decorator =
TypedSPILoader.findService(RuleConfigurationDecorator.class,
ruleConfig.getClass());
- return decorator.map(optional -> optional.decorate(database.getName(),
database.getResourceMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig)).orElse(ruleConfig);
+ return decorator.map(optional -> optional.decorate(database.getName(),
+
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules(), ruleConfig)).orElse(ruleConfig);
}
@SuppressWarnings({"rawtypes", "unchecked"})
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
index 8d0f3a36107..c00e6fe3f44 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandler.java
@@ -100,13 +100,13 @@ public final class AlterStorageUnitBackendHandler extends
StorageUnitDefinitionB
}
private void checkStorageUnitNameExisted(final String databaseName, final
Collection<String> storageUnitNames) {
- Map<String, DataSource> storageUnits =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ Map<String, DataSource> storageUnits =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
Collection<String> notExistedStorageUnitNames =
storageUnitNames.stream().filter(each ->
!storageUnits.containsKey(each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedStorageUnitNames.isEmpty(), ()
-> new MissingRequiredStorageUnitsException(databaseName,
notExistedStorageUnitNames));
}
private void checkDatabase(final String databaseName, final
AlterStorageUnitStatement sqlStatement) {
- Map<String, DataSource> storageUnits =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ Map<String, DataSource> storageUnits =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
Collection<String> invalidStorageUnitNames =
sqlStatement.getStorageUnits().stream().collect(Collectors.toMap(DataSourceSegment::getName,
each -> each)).entrySet().stream()
.filter(each -> !isIdenticalDatabase(each.getValue(),
storageUnits.get(each.getKey()))).map(Entry::getKey).collect(Collectors.toSet());
ShardingSpherePreconditions.checkState(invalidStorageUnitNames.isEmpty(),
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
index 0c822b780cb..07715988233 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
@@ -71,14 +71,15 @@ public final class UnregisterStorageUnitBackendHandler
extends StorageUnitDefini
}
private void checkExisted(final String databaseName, final
Collection<String> storageUnitNames) {
- Map<String, DataSource> dataSources =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ Map<String, DataSource> dataSources =
ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
Collection<String> notExistedStorageUnits =
storageUnitNames.stream().filter(each ->
!dataSources.containsKey(each)).collect(Collectors.toList());
ShardingSpherePreconditions.checkState(notExistedStorageUnits.isEmpty(), () ->
new MissingRequiredStorageUnitsException(databaseName, notExistedStorageUnits));
}
private void checkInUsed(final String databaseName, final
UnregisterStorageUnitStatement sqlStatement) {
ShardingSphereDatabase database =
ProxyContext.getInstance().getDatabase(databaseName);
- Map<String, Collection<String>> inUsedStorageUnits =
StorageUnitUtils.getInUsedStorageUnits(database.getRuleMetaData(),
database.getResourceMetaData().getDataSources().size());
+ Map<String, Collection<String>> inUsedStorageUnits =
StorageUnitUtils.getInUsedStorageUnits(
+ database.getRuleMetaData(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().size());
Collection<String> inUsedStorageUnitNames =
inUsedStorageUnits.keySet();
inUsedStorageUnitNames.retainAll(sqlStatement.getStorageUnitNames());
if (!inUsedStorageUnitNames.isEmpty()) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowRulesUsedStorageUnitExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowRulesUsedStorageUnitExecutor.java
index be340fb0630..143d26aaf52 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowRulesUsedStorageUnitExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowRulesUsedStorageUnitExecutor.java
@@ -62,7 +62,7 @@ public final class ShowRulesUsedStorageUnitExecutor
implements RQLExecutor<ShowR
public Collection<LocalDataQueryResultRow> getRows(final
ShardingSphereDatabase database, final ShowRulesUsedStorageUnitStatement
sqlStatement) {
Collection<LocalDataQueryResultRow> result = new LinkedList<>();
String resourceName = sqlStatement.getStorageUnitName().orElse(null);
- if
(database.getResourceMetaData().getDataSources().containsKey(resourceName)) {
+ if
(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().containsKey(resourceName))
{
result.addAll(getShardingData(database));
result.addAll(getReadwriteSplittingData(database, resourceName));
result.addAll(getEncryptData(database));
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
index a00adc65d75..e2c7713e92c 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
@@ -92,21 +92,22 @@ public final class ShowStorageUnitExecutor implements
RQLExecutor<ShowStorageUni
}
private Map<String, DataSourcePoolProperties>
getDataSourcePoolPropertiesMap(final ShardingSphereDatabase database, final
ShowStorageUnitsStatement sqlStatement) {
- Map<String, DataSourcePoolProperties> result = new
LinkedHashMap<>(database.getResourceMetaData().getDataSources().size(), 1F);
+ Map<String, DataSourcePoolProperties> result = new
LinkedHashMap<>(database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size(),
1F);
Map<String, DataSourcePoolProperties> propsMap =
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, entry ->
entry.getValue().getDataSourcePoolProperties(), (oldValue, currentValue) ->
currentValue, LinkedHashMap::new));
Map<String, DatabaseType> storageTypes =
database.getResourceMetaData().getStorageTypes();
Optional<Integer> usageCount = sqlStatement.getUsageCount();
if (usageCount.isPresent()) {
- Map<String, Collection<String>> inUsedStorageUnits =
StorageUnitUtils.getInUsedStorageUnits(database.getRuleMetaData(),
database.getResourceMetaData().getDataSources().size());
- for (Entry<String, DataSource> entry :
database.getResourceMetaData().getDataSources().entrySet()) {
+ Map<String, Collection<String>> inUsedStorageUnits =
StorageUnitUtils.getInUsedStorageUnits(
+ database.getRuleMetaData(),
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().size());
+ for (Entry<String, DataSource> entry :
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().entrySet())
{
Integer currentUsageCount =
inUsedStorageUnits.containsKey(entry.getKey()) ?
inUsedStorageUnits.get(entry.getKey()).size() : 0;
if (usageCount.get().equals(currentUsageCount)) {
result.put(entry.getKey(),
getDataSourcePoolProperties(propsMap, entry.getKey(),
storageTypes.get(entry.getKey()), entry.getValue()));
}
}
} else {
- for (Entry<String, DataSource> entry :
database.getResourceMetaData().getDataSources().entrySet()) {
+ for (Entry<String, DataSource> entry :
database.getResourceMetaData().getStorageUnitMetaData().getDataSources().entrySet())
{
result.put(entry.getKey(),
getDataSourcePoolProperties(propsMap, entry.getKey(),
storageTypes.get(entry.getKey()), entry.getValue()));
}
}
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 e0b5f273bff..2c1748977a1 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
@@ -130,7 +130,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
private void checkDatabase(final String databaseName) {
ShardingSpherePreconditions.checkNotNull(databaseName, () -> new
UnsupportedSQLOperationException("Property `databaseName` in imported config is
required"));
if (ProxyContext.getInstance().databaseExists(databaseName)) {
-
ShardingSpherePreconditions.checkState(ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getDataSources().isEmpty(),
+
ShardingSpherePreconditions.checkState(ProxyContext.getInstance().getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getStorageUnits().isEmpty(),
() -> new
UnsupportedSQLOperationException(String.format("Database `%s` exists and is not
empty,overwrite is not supported", databaseName)));
}
}
@@ -158,7 +158,8 @@ public final class YamlDatabaseConfigurationImportExecutor {
} catch (final SQLException ex) {
throw new
InvalidStorageUnitsException(Collections.singleton(ex.getMessage()));
}
- Map<String, DataSource> dataSource =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase(databaseName).getResourceMetaData().getDataSources();
+ Map<String, DataSource> dataSource =
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData()
+
.getDatabase(databaseName).getResourceMetaData().getStorageUnitMetaData().getDataSources();
propsMap.forEach((key, value) -> dataSource.put(key,
DataSourcePoolCreator.create(value)));
}
@@ -246,7 +247,7 @@ public final class YamlDatabaseConfigurationImportExecutor {
InstanceContext instanceContext =
ProxyContext.getInstance().getContextManager().getInstanceContext();
shardingRuleConfigImportChecker.check(database, shardingRuleConfig);
allRuleConfigs.add(shardingRuleConfig);
- database.getRuleMetaData().getRules().add(new
ShardingRule(shardingRuleConfig,
database.getResourceMetaData().getDataSources().keySet(), instanceContext));
+ database.getRuleMetaData().getRules().add(new
ShardingRule(shardingRuleConfig,
database.getResourceMetaData().getStorageUnitMetaData().getStorageUnits().keySet(),
instanceContext));
}
private void addReadwriteSplittingRuleConfiguration(final
ReadwriteSplittingRuleConfiguration readwriteSplittingRuleConfig,
@@ -278,12 +279,13 @@ public final class
YamlDatabaseConfigurationImportExecutor {
private void addBroadcastRuleConfiguration(final
BroadcastRuleConfiguration broadcastRuleConfig, final
Collection<RuleConfiguration> allRuleConfigs, final ShardingSphereDatabase
database) {
allRuleConfigs.add(broadcastRuleConfig);
- database.getRuleMetaData().getRules().add(new
BroadcastRule(broadcastRuleConfig, database.getName(),
database.getResourceMetaData().getDataSources()));
+ database.getRuleMetaData().getRules().add(new
BroadcastRule(broadcastRuleConfig, database.getName(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources()));
}
private void addSingleRuleConfiguration(final SingleRuleConfiguration
broadcastRuleConfig, final Collection<RuleConfiguration> allRuleConfigs, final
ShardingSphereDatabase database) {
allRuleConfigs.add(broadcastRuleConfig);
- database.getRuleMetaData().getRules().add(new
SingleRule(broadcastRuleConfig, database.getName(),
database.getResourceMetaData().getDataSources(),
database.getRuleMetaData().getRules()));
+ database.getRuleMetaData().getRules().add(
+ new SingleRule(broadcastRuleConfig, database.getName(),
database.getResourceMetaData().getStorageUnitMetaData().getDataSources(),
database.getRuleMetaData().getRules()));
}
private void dropDatabase(final String databaseName) {
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
index f63c406b810..93834d4da6a 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -99,7 +99,7 @@ class JDBCBackendDataSourceTest {
storageTypes.put("ds_0", databaseType);
storageTypes.put("ds_1", databaseType);
when(database.getResourceMetaData().getStorageTypes()).thenReturn(storageTypes);
-
when(database.getResourceMetaData().getDataSources()).thenReturn(mockDataSources(2));
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(mockDataSources(2));
return Collections.singletonMap("schema", database);
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
index 257c6e4782d..9cfc3c99b0d 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/database/DatabaseOperateBackendHandlerFactoryTest.java
@@ -158,7 +158,6 @@ class DatabaseOperateBackendHandlerFactoryTest {
private MetaDataContexts mockMetaDataContexts() {
MetaDataContexts result =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
-
when(result.getMetaData().getDatabase("foo_db").getResourceMetaData().getDataSources()).thenReturn(Collections.emptyMap());
when(result.getMetaData().getDatabase("foo_db").getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
return result;
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index fc46f8faef0..b167e61aae8 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -92,7 +92,6 @@ class DistSQLBackendHandlerFactoryTest {
private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
-
when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.emptyMap());
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
when(result.getRuleMetaData()).thenReturn(new
RuleMetaData(Collections.emptyList()));
return result;
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutorTest.java
index aeff63e5c8a..7e538738bf1 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportStorageNodesExecutorTest.java
@@ -125,7 +125,7 @@ class ExportStorageNodesExecutorTest {
@Test
void assertExecute() {
when(database.getName()).thenReturn("normal_db");
-
when(database.getResourceMetaData().getDataSources()).thenReturn(createDataSourceMap());
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(createDataSourceMap());
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createShardingRuleConfiguration()));
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
@@ -138,7 +138,7 @@ class ExportStorageNodesExecutorTest {
@Test
void assertExecuteWithDatabaseName() {
when(database.getName()).thenReturn("normal_db");
-
when(database.getResourceMetaData().getDataSources()).thenReturn(createDataSourceMap());
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(createDataSourceMap());
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createShardingRuleConfiguration()));
ContextManager contextManager = mockContextManager();
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationUpdaterTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationUpdaterTest.java
index 14d3f6b6a1b..5e1ddde3db7 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationUpdaterTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportDatabaseConfigurationUpdaterTest.java
@@ -27,6 +27,7 @@ import
org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
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.storage.StorageUnitMetaData;
import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import
org.apache.shardingsphere.infra.exception.core.external.sql.type.generic.UnsupportedSQLOperationException;
@@ -39,6 +40,8 @@ import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.internal.configuration.plugins.Plugins;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.sql.SQLException;
import java.util.Collections;
@@ -51,6 +54,7 @@ import static org.mockito.Mockito.when;
@ExtendWith(AutoMockExtension.class)
@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
class ImportDatabaseConfigurationUpdaterTest {
private ImportDatabaseConfigurationUpdater importDatabaseConfigUpdater;
@@ -126,6 +130,7 @@ class ImportDatabaseConfigurationUpdaterTest {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
+
when(resourceMetaData.getStorageUnitMetaData()).thenReturn(mock(StorageUnitMetaData.class));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
when(database.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(schema);
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 033973f8aab..cab863a736e 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
@@ -108,7 +108,7 @@ class ImportMetaDataUpdaterTest {
if (feature != null) {
ShardingSphereDatabase database =
mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(database.getSchema(DefaultDatabase.LOGIC_NAME)).thenReturn(new
ShardingSphereSchema(createTableMap(), Collections.emptyMap()));
-
when(database.getResourceMetaData().getDataSources()).thenReturn(createDataSourceMap());
+
when(database.getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(createDataSourceMap());
when(result.getMetaDataContexts().getMetaData().getDatabases()).thenReturn(Collections.singletonMap(feature,
database));
when(result.getMetaDataContexts().getMetaData().getDatabase(feature)).thenReturn(database);
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
index 3820321cb36..bd97a3e397b 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/AlterStorageUnitBackendHandlerTest.java
@@ -78,8 +78,8 @@ class AlterStorageUnitBackendHandlerTest {
ContextManager contextManager =
mockContextManager(mock(MetaDataContexts.class, RETURNS_DEEP_STUBS));
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
- ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("ds_0",
mockHikariDataSource("ds_0")));
+ ResourceMetaData resourceMetaData = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
mockHikariDataSource("ds_0")));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
assertThat(handler.execute("foo_db",
createAlterStorageUnitStatement("ds_0")),
instanceOf(UpdateResponseHeader.class));
}
@@ -103,8 +103,8 @@ class AlterStorageUnitBackendHandlerTest {
ContextManager contextManager =
mockContextManager(mock(MetaDataContexts.class, RETURNS_DEEP_STUBS));
when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
when(ProxyContext.getInstance().getDatabase("foo_db")).thenReturn(database);
- ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("ds_0",
mockHikariDataSource("ds_1")));
+ ResourceMetaData resourceMetaData = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
mockHikariDataSource("ds_1")));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
assertThrows(InvalidStorageUnitsException.class, () ->
handler.execute("foo_db", createAlterStorageUnitStatement("ds_0")));
}
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 4bc36b4711f..335f8c67a01 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
@@ -89,7 +89,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@BeforeEach
void setUp() {
resourceMetaData = mock(ResourceMetaData.class, RETURNS_DEEP_STUBS);
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
contextManager = mockContextManager();
@@ -109,7 +109,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@Test
void assertExecute() throws SQLException {
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
UnregisterStorageUnitStatement unregisterStorageUnitStatement = new
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false);
@@ -119,7 +119,7 @@ class UnregisterStorageUnitBackendHandlerTest {
@Test
void assertStorageUnitNameNotExistedExecute() {
-
when(ProxyContext.getInstance().getDatabase("foo_db").getResourceMetaData().getDataSources()).thenReturn(Collections.emptyMap());
+
when(ProxyContext.getInstance().getDatabase("foo_db").getResourceMetaData().getStorageUnitMetaData().getDataSources()).thenReturn(Collections.emptyMap());
assertThrows(MissingRequiredStorageUnitsException.class,
() -> handler.execute("foo_db", new
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), false)));
}
@@ -129,7 +129,7 @@ class UnregisterStorageUnitBackendHandlerTest {
when(ruleMetaData.findRules(DataSourceContainedRule.class)).thenReturn(Collections.singleton(shadowRule));
when(shadowRule.getType()).thenReturn("ShadowRule");
when(shadowRule.getDataSourceMapper()).thenReturn(Collections.singletonMap("",
Collections.singleton("foo_ds")));
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
assertThrows(StorageUnitInUsedException.class,
@@ -143,7 +143,7 @@ class UnregisterStorageUnitBackendHandlerTest {
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
when(singleRule.getAllDataNodes()).thenReturn(Collections.singletonMap("",
Collections.singleton(dataNode)));
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
assertThrows(StorageUnitInUsedException.class,
@@ -157,7 +157,7 @@ class UnregisterStorageUnitBackendHandlerTest {
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
when(singleRule.getAllDataNodes()).thenReturn(Collections.singletonMap("",
Collections.singleton(dataNode)));
-
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(resourceMetaData.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(database);
UnregisterStorageUnitStatement unregisterStorageUnitStatement = new
UnregisterStorageUnitStatement(Collections.singleton("foo_ds"), true);
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 effd4e5e0dd..ad3aa0e4c2a 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
@@ -95,7 +95,8 @@ public final class SelectInformationSchemataExecutor extends
DefaultDatabaseMeta
@Override
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.getDataSources().keySet().stream().map(each ->
resourceMetaData.getConnectionProperties(each).getCatalog()).collect(Collectors.toSet());
+ Collection<String> catalogs =
resourceMetaData.getStorageUnitMetaData().getStorageUnits().keySet()
+ .stream().map(each ->
resourceMetaData.getConnectionProperties(each).getCatalog()).collect(Collectors.toSet());
schemaNameAlias = alias.getOrDefault(SCHEMA_NAME, "");
String rowValue = rows.getOrDefault(schemaNameAlias, "").toString();
queryDatabase = !rowValue.isEmpty();
diff --git
a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
index 4886ed672e5..77cca55965c 100644
---
a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
+++
b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/version/ShardingSphereProxyVersion.java
@@ -74,6 +74,7 @@ public final class ShardingSphereProxyVersion {
private static Optional<DataSource> findDataSourceByProtocolType(final
String databaseName, final ResourceMetaData resourceMetaData, final
DatabaseType protocolType) {
Optional<String> dataSourceName =
resourceMetaData.getStorageTypes().entrySet().stream().filter(entry ->
entry.getValue().equals(protocolType)).map(Entry::getKey).findFirst();
- return dataSourceName.flatMap(optional ->
Optional.ofNullable(DataSourceStateManager.getInstance().getEnabledDataSources(databaseName,
resourceMetaData.getDataSources()).get(optional)));
+ return dataSourceName.flatMap(optional -> Optional.ofNullable(
+
DataSourceStateManager.getInstance().getEnabledDataSources(databaseName,
resourceMetaData.getStorageUnitMetaData().getDataSources()).get(optional)));
}
}
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 2fa4cd21ae4..c20b67edbc3 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
@@ -77,10 +77,10 @@ class ShardingSphereProxyVersionTest {
}
private ResourceMetaData mockResourceMetaData(final String
databaseProductName, final String databaseProductVersion) throws SQLException {
- ResourceMetaData result = mock(ResourceMetaData.class);
+ ResourceMetaData result = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
when(result.getStorageTypes()).thenReturn(Collections.singletonMap("foo_ds",
TypedSPILoader.getService(DatabaseType.class, databaseProductName)));
DataSource dataSource = createDataSource(databaseProductName,
databaseProductVersion);
-
when(result.getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
+
when(result.getStorageUnitMetaData().getDataSources()).thenReturn(Collections.singletonMap("foo_ds",
dataSource));
return result;
}
diff --git
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
index 99042c9442d..15f8c353fdf 100644
---
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
+++
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
@@ -86,6 +86,7 @@ import java.util.stream.Stream;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -119,7 +120,7 @@ public abstract class SQLRewriterIT {
mockDataSource(databaseConfig.getDataSources());
DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, testParams.getDatabaseType());
Map<String, DatabaseType> storageTypes =
createStorageTypes(databaseConfig, databaseType);
- ResourceMetaData resourceMetaData = mock(ResourceMetaData.class);
+ ResourceMetaData resourceMetaData = mock(ResourceMetaData.class,
RETURNS_DEEP_STUBS);
when(resourceMetaData.getStorageTypes()).thenReturn(storageTypes);
String schemaName = new
DatabaseTypeRegistry(databaseType).getDefaultSchemaName(DefaultDatabase.LOGIC_NAME);
SQLStatementParserEngine sqlStatementParserEngine = new
SQLStatementParserEngine(TypedSPILoader.getService(DatabaseType.class,
testParams.getDatabaseType()),