This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new f94cc0f35d3 Refactor usages of ShardingSphereMetaData.databases
(#33871)
f94cc0f35d3 is described below
commit f94cc0f35d37b8a2ddb5b16624ef16c5e2d1591f
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Dec 1 23:38:45 2024 +0800
Refactor usages of ShardingSphereMetaData.databases (#33871)
* Refactor usages of ShardingSphereMetaData.databases
* Refactor usages of ShardingSphereMetaData.databases
---
.../core/exporter/impl/proxy/ProxyMetaDataInfoExporter.java | 4 ++--
.../exporter/impl/proxy/ProxyMetaDataInfoExporterTest.java | 2 +-
.../shardingsphere/infra/metadata/ShardingSphereMetaData.java | 10 ++++++++++
.../builder/dialect/MySQLShardingSphereStatisticsBuilder.java | 7 +++----
.../dialect/PostgreSQLShardingSphereStatisticsBuilder.java | 6 +++---
.../PostgreSQLShardingSphereStatisticsBuilderTest.java | 11 ++++++-----
.../sqlfederation/executor/utils/StatisticsAssembleUtils.java | 4 ++--
.../apache/shardingsphere/mode/manager/ContextManager.java | 2 +-
.../apache/shardingsphere/mode/metadata/MetaDataContexts.java | 2 +-
.../shardingsphere/mode/metadata/MetaDataContextsFactory.java | 8 ++++----
.../shardingsphere/mode/manager/ContextManagerTest.java | 6 ++++--
.../mode/metadata/manager/SchemaMetaDataManagerTest.java | 2 +-
.../refresher/ShardingSphereStatisticsRefreshEngineTest.java | 2 +-
.../cluster/persist/ClusterMetaDataManagerPersistService.java | 4 ++--
.../jdbc/executor/callback/ProxyJDBCExecutorCallback.java | 4 ++--
.../shardingsphere/proxy/backend/context/ProxyContext.java | 4 ++--
.../distsql/ral/queryable/ExportStorageNodesExecutor.java | 6 +++---
.../backend/connector/ProxyDatabaseConnectionManagerTest.java | 2 +-
.../proxy/backend/connector/ProxySQLExecutorTest.java | 2 +-
.../proxy/version/ShardingSphereProxyVersion.java | 2 +-
.../frontend/protocol/FrontDatabaseProtocolTypeFactory.java | 4 ++--
.../proxy/frontend/state/impl/OKProxyStateTest.java | 2 +-
22 files changed, 54 insertions(+), 42 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 376827ab6cd..80cdf27f002 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
@@ -45,12 +45,12 @@ public final class ProxyMetaDataInfoExporter implements
MetricsExporter {
GaugeMetricFamilyMetricsCollector result =
MetricsCollectorRegistry.get(config, pluginType);
result.cleanMetrics();
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- result.addMetric(Collections.singletonList("database_count"),
metaDataContexts.getMetaData().getDatabases().size());
+ result.addMetric(Collections.singletonList("database_count"),
metaDataContexts.getMetaData().getAllDatabases().size());
result.addMetric(Collections.singletonList("storage_unit_count"),
getStorageUnitCount(metaDataContexts));
return Optional.of(result);
}
private int getStorageUnitCount(final MetaDataContexts metaDataContexts) {
- return
metaDataContexts.getMetaData().getDatabases().values().stream().map(each ->
each.getResourceMetaData().getStorageUnits().size()).reduce(0, Integer::sum);
+ return
metaDataContexts.getMetaData().getAllDatabases().stream().map(each ->
each.getResourceMetaData().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 64ce8e8f02a..5663a0dddfd 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
@@ -81,7 +81,7 @@ class ProxyMetaDataInfoExporterTest {
when(database.getResourceMetaData().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));
+
when(metaData.getAllDatabases()).thenReturn(Collections.singleton(database));
MetaDataContexts metaDataContexts =
MetaDataContextsFactory.create(mock(MetaDataPersistService.class), metaData);
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
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 228de852c43..594d99fbc9e 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
@@ -32,6 +32,7 @@ import
org.apache.shardingsphere.infra.rule.attribute.datasource.StaticDataSourc
import org.apache.shardingsphere.infra.rule.scope.GlobalRule;
import
org.apache.shardingsphere.infra.rule.scope.GlobalRule.GlobalRuleChangedType;
+import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;
@@ -68,6 +69,15 @@ public final class ShardingSphereMetaData {
temporaryProps = new
TemporaryConfigurationProperties(props.getProps());
}
+ /**
+ * Get all databases.
+ *
+ * @return all databases
+ */
+ public Collection<ShardingSphereDatabase> getAllDatabases() {
+ return databases.values();
+ }
+
/**
* Judge contains database from meta data or not.
*
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
index 5365a50fb1e..f8fd2cf450f 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/MySQLShardingSphereStatisticsBuilder.java
@@ -29,7 +29,6 @@ import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereTableDa
import
org.apache.shardingsphere.infra.metadata.statistics.builder.ShardingSphereStatisticsBuilder;
import java.util.Collections;
-import java.util.Map.Entry;
/**
* ShardingSphere statistics builder for MySQL.
@@ -46,11 +45,11 @@ public final class MySQLShardingSphereStatisticsBuilder
implements ShardingSpher
@Override
public ShardingSphereStatistics build(final ShardingSphereMetaData
metaData) {
ShardingSphereStatistics result = new ShardingSphereStatistics();
- for (Entry<String, ShardingSphereDatabase> entry :
metaData.getDatabases().entrySet()) {
+ for (ShardingSphereDatabase each : metaData.getAllDatabases()) {
ShardingSphereDatabaseData databaseData = new
ShardingSphereDatabaseData();
- initSchemas(entry.getValue(), databaseData);
+ initSchemas(each, databaseData);
if (!databaseData.getSchemaData().isEmpty()) {
- result.putDatabase(entry.getKey(), databaseData);
+ result.putDatabase(each.getName(), databaseData);
}
}
return result;
diff --git
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
index c4c64fc4029..9aa63248429 100644
---
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
+++
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilder.java
@@ -57,11 +57,11 @@ public final class
PostgreSQLShardingSphereStatisticsBuilder implements Sharding
@Override
public ShardingSphereStatistics build(final ShardingSphereMetaData
metaData) {
ShardingSphereStatistics result = new ShardingSphereStatistics();
- for (Entry<String, ShardingSphereDatabase> entry :
metaData.getDatabases().entrySet()) {
+ for (ShardingSphereDatabase each : metaData.getAllDatabases()) {
ShardingSphereDatabaseData databaseData = new
ShardingSphereDatabaseData();
- initSchemas(entry.getValue(), databaseData);
+ initSchemas(each, databaseData);
if (!databaseData.getSchemaData().isEmpty()) {
- result.putDatabase(entry.getKey(), databaseData);
+ result.putDatabase(each.getName(), databaseData);
}
}
return result;
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilderTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilderTest.java
index 2fdfcc80b86..daafa53d062 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilderTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/statistics/builder/dialect/PostgreSQLShardingSphereStatisticsBuilderTest.java
@@ -24,8 +24,8 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSp
import
org.apache.shardingsphere.infra.metadata.statistics.ShardingSphereStatistics;
import org.junit.jupiter.api.Test;
+import java.util.Collection;
import java.util.Collections;
-import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -45,17 +45,18 @@ class PostgreSQLShardingSphereStatisticsBuilderTest {
private ShardingSphereMetaData mockMetaData() {
ShardingSphereMetaData result = mock(ShardingSphereMetaData.class);
- Map<String, ShardingSphereDatabase> databaseMap = mockDatabaseMap();
- when(result.getDatabases()).thenReturn(databaseMap);
+ Collection<ShardingSphereDatabase> databases = mockDatabases();
+ when(result.getAllDatabases()).thenReturn(databases);
return result;
}
- private Map<String, ShardingSphereDatabase> mockDatabaseMap() {
+ private Collection<ShardingSphereDatabase> mockDatabases() {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS);
+ when(database.getName()).thenReturn("logic_db");
ShardingSphereSchema schema = mockSchema();
when(database.getAllSchemas()).thenReturn(Collections.singleton(schema));
when(database.getSchema("pg_catalog")).thenReturn(schema);
- return Collections.singletonMap("logic_db", database);
+ return Collections.singleton(database);
}
private ShardingSphereSchema mockSchema() {
diff --git
a/kernel/sql-federation/executor/src/main/java/org/apache/shardingsphere/sqlfederation/executor/utils/StatisticsAssembleUtils.java
b/kernel/sql-federation/executor/src/main/java/org/apache/shardingsphere/sqlfederation/executor/utils/StatisticsAssembleUtils.java
index 1e70d9cf7ec..2bbf5a38e2e 100644
---
a/kernel/sql-federation/executor/src/main/java/org/apache/shardingsphere/sqlfederation/executor/utils/StatisticsAssembleUtils.java
+++
b/kernel/sql-federation/executor/src/main/java/org/apache/shardingsphere/sqlfederation/executor/utils/StatisticsAssembleUtils.java
@@ -49,9 +49,9 @@ public final class StatisticsAssembleUtils {
// TODO move this logic to ShardingSphere statistics
ShardingSphereTableData result = new
ShardingSphereTableData(table.getName());
if (EnumerableConstants.PG_DATABASE.equalsIgnoreCase(table.getName()))
{
- assembleOpenGaussDatabaseData(result,
metaData.getDatabases().values());
+ assembleOpenGaussDatabaseData(result, metaData.getAllDatabases());
} else if
(EnumerableConstants.PG_TABLES.equalsIgnoreCase(table.getName())) {
- for (ShardingSphereDatabase each :
metaData.getDatabases().values()) {
+ for (ShardingSphereDatabase each : metaData.getAllDatabases()) {
assembleOpenGaussTableData(result, each.getAllSchemas());
}
} else if
(EnumerableConstants.PG_ROLES.equalsIgnoreCase(table.getName())) {
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 02f019185f5..7a60596056d 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
@@ -198,7 +198,7 @@ public final class ContextManager implements AutoCloseable {
* @return pre-selected database name
*/
public String getPreSelectedDatabaseName() {
- return InstanceType.JDBC ==
computeNodeInstanceContext.getInstance().getMetaData().getType() ?
metaDataContexts.get().getMetaData().getDatabases().keySet().iterator().next()
: null;
+ return InstanceType.JDBC ==
computeNodeInstanceContext.getInstance().getMetaData().getType() ?
metaDataContexts.get().getMetaData().getAllDatabases().iterator().next().getName()
: null;
}
@Override
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
index e261e2354f7..ab74bef8851 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContexts.java
@@ -53,7 +53,7 @@ public final class MetaDataContexts implements AutoCloseable {
private Collection<ShardingSphereRule> getAllRules() {
Collection<ShardingSphereRule> result = new
LinkedList<>(metaData.getGlobalRuleMetaData().getRules());
- metaData.getDatabases().values().stream().map(each ->
each.getRuleMetaData().getRules()).forEach(result::addAll);
+ metaData.getAllDatabases().stream().map(each ->
each.getRuleMetaData().getRules()).forEach(result::addAll);
return result;
}
}
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 36ac87b94a5..6318ad6ec6a 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
@@ -168,10 +168,10 @@ public final class MetaDataContextsFactory {
}
private static ShardingSphereStatistics initStatistics(final
MetaDataPersistService persistService, final ShardingSphereMetaData metaData) {
- if (metaData.getDatabases().isEmpty()) {
+ if (metaData.getAllDatabases().isEmpty()) {
return new ShardingSphereStatistics();
}
- DatabaseType protocolType =
metaData.getDatabases().values().iterator().next().getProtocolType();
+ DatabaseType protocolType =
metaData.getAllDatabases().iterator().next().getProtocolType();
DialectDatabaseMetaData dialectDatabaseMetaData = new
DatabaseTypeRegistry(protocolType).getDialectDatabaseMetaData();
// TODO can `protocolType instanceof SchemaSupportedDatabaseType ?
"PostgreSQL" : protocolType.getType()` replace to trunk database type?
DatabaseType databaseType =
dialectDatabaseMetaData.getDefaultSchema().isPresent() ?
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL") : protocolType;
@@ -238,7 +238,7 @@ public final class MetaDataContextsFactory {
}
private static void persistMetaData(final MetaDataContexts
metaDataContexts, final MetaDataPersistService persistService) {
- metaDataContexts.getMetaData().getDatabases().values().forEach(each ->
each.getAllSchemas().forEach(schema -> {
+ metaDataContexts.getMetaData().getAllDatabases().forEach(each ->
each.getAllSchemas().forEach(schema -> {
if (schema.isEmpty()) {
persistService.getDatabaseMetaDataFacade().getSchema().add(each.getName(),
schema.getName());
}
@@ -247,7 +247,7 @@ public final class MetaDataContextsFactory {
for (Entry<String, ShardingSphereDatabaseData> databaseDataEntry :
metaDataContexts.getStatistics().getDatabaseData().entrySet()) {
for (Entry<String, ShardingSphereSchemaData> schemaDataEntry :
databaseDataEntry.getValue().getSchemaData().entrySet()) {
persistService.getShardingSphereDataPersistService().persist(
-
metaDataContexts.getMetaData().getDatabases().get(databaseDataEntry.getKey().toLowerCase()),
schemaDataEntry.getKey(), schemaDataEntry.getValue());
+
metaDataContexts.getMetaData().getDatabase(databaseDataEntry.getKey()),
schemaDataEntry.getKey(), schemaDataEntry.getValue());
}
}
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 7568dbcf629..2c23c3c8159 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
@@ -87,7 +87,7 @@ class ContextManagerTest {
ShardingSphereDatabase database = mockDatabase();
when(metaDataContexts.getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(metaDataContexts.getMetaData().getDatabase("foo_db")).thenReturn(database);
-
when(metaDataContexts.getMetaData().getDatabases().values()).thenReturn(Collections.singleton(database));
+
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
when(computeNodeInstanceContext.getInstance()).thenReturn(new
ComputeNodeInstance(new ProxyInstanceMetaData("foo_id", 3307),
Collections.emptyList()));
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
contextManager = new ContextManager(metaDataContexts,
computeNodeInstanceContext, mock(PersistRepository.class));
@@ -174,7 +174,9 @@ class ContextManagerTest {
@Test
void assertGetPreSelectedDatabaseNameWithJDBC() {
when(computeNodeInstanceContext.getInstance()).thenReturn(new
ComputeNodeInstance(new JDBCInstanceMetaData("foo_id", "foo_db"),
Collections.emptyList()));
-
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("foo_db",
mock(ShardingSphereDatabase.class)));
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
+ when(database.getName()).thenReturn("foo_db");
+
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
assertThat(contextManager.getPreSelectedDatabaseName(), is("foo_db"));
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
index 627fe3d678f..e505af62edf 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/manager/SchemaMetaDataManagerTest.java
@@ -67,7 +67,7 @@ class SchemaMetaDataManagerTest {
ShardingSphereDatabase database = mockDatabase();
when(metaDataContexts.getMetaData().containsDatabase("foo_db")).thenReturn(true);
when(metaDataContexts.getMetaData().getDatabase("foo_db")).thenReturn(database);
-
when(metaDataContexts.getMetaData().getDatabases().values()).thenReturn(Collections.singleton(database));
+
when(metaDataContexts.getMetaData().getAllDatabases()).thenReturn(Collections.singleton(database));
schemaMetaDataManager = new SchemaMetaDataManager(new
AtomicReference<>(metaDataContexts), mock(PersistRepository.class));
}
diff --git
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
index b6512f67dff..1b2a77808d9 100644
---
a/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
+++
b/mode/core/src/test/java/org/apache/shardingsphere/mode/metadata/refresher/ShardingSphereStatisticsRefreshEngineTest.java
@@ -83,7 +83,7 @@ class ShardingSphereStatisticsRefreshEngineTest {
ShardingSphereMetaData result = mock(ShardingSphereMetaData.class);
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class);
when(database.getName()).thenReturn("logic_db");
-
when(result.getDatabases()).thenReturn(Collections.singletonMap("logic_db",
database));
+
when(result.getAllDatabases()).thenReturn(Collections.singleton(database));
when(result.getDatabase("logic_db")).thenReturn(database);
when(result.containsDatabase("logic_db")).thenReturn(true);
ShardingSphereSchema schema = mock(ShardingSphereSchema.class);
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
index ee2234b025f..c2da0ec0392 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
@@ -184,7 +184,7 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
.getSchema().alterByRuleAltered(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
each));
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
.ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
metaDataPersistService.getShardingSphereDataPersistService()
-
.persist(originalMetaDataContexts.getMetaData().getDatabases().get(databaseName.toLowerCase()),
schemaName, schemaData)));
+
.persist(originalMetaDataContexts.getMetaData().getDatabase(databaseName),
schemaName, schemaData)));
metaDataPersistService.persistReloadDatabaseByAlter(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
}
@@ -194,7 +194,7 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
.getSchema().alterByRuleDropped(reloadMetaDataContexts.getMetaData().getDatabase(databaseName).getName(),
each));
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseData().get(databaseName))
.ifPresent(optional ->
optional.getSchemaData().forEach((schemaName, schemaData) ->
metaDataPersistService.getShardingSphereDataPersistService()
-
.persist(originalMetaDataContexts.getMetaData().getDatabases().get(databaseName.toLowerCase()),
schemaName, schemaData)));
+
.persist(originalMetaDataContexts.getMetaData().getDatabase(databaseName),
schemaName, schemaData)));
metaDataPersistService.persistReloadDatabaseByDrop(databaseName,
reloadMetaDataContexts.getMetaData().getDatabase(databaseName),
originalMetaDataContexts.getMetaData().getDatabase(databaseName));
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
index 2631c70cb9a..6005088cf5f 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/executor/callback/ProxyJDBCExecutorCallback.java
@@ -111,9 +111,9 @@ public abstract class ProxyJDBCExecutorCallback extends
JDBCExecutorCallback<Exe
if (null != configuredDatabaseType) {
return configuredDatabaseType;
}
- if
(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().isEmpty())
{
+ if
(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getAllDatabases().isEmpty())
{
return TypedSPILoader.getService(DatabaseType.class, "MySQL");
}
- return
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabases().values().iterator().next().getProtocolType();
+ return
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getAllDatabases().iterator().next().getProtocolType();
}
}
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
index bf9c52cef91..4c1e12fe6e9 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/context/ProxyContext.java
@@ -79,7 +79,7 @@ public final class ProxyContext {
* @return all database names
*/
public Collection<String> getAllDatabaseNames() {
- return
contextManager.getMetaDataContexts().getMetaData().getDatabases().values().stream().map(ShardingSphereDatabase::getName).collect(Collectors.toList());
+ return
contextManager.getMetaDataContexts().getMetaData().getAllDatabases().stream().map(ShardingSphereDatabase::getName).collect(Collectors.toList());
}
/**
@@ -97,7 +97,7 @@ public final class ProxyContext {
* @return database type
*/
public DatabaseType getDatabaseType() {
- Collection<ShardingSphereDatabase> databases =
contextManager.getMetaDataContexts().getMetaData().getDatabases().values();
+ Collection<ShardingSphereDatabase> databases =
contextManager.getMetaDataContexts().getMetaData().getAllDatabases();
return databases.stream().flatMap(each ->
each.getResourceMetaData().getStorageUnits().values().stream()).findFirst().map(StorageUnit::getStorageType)
.orElseGet(DatabaseTypeEngine::getDefaultStorageType);
}
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 e09c85bb2b8..9c4de4e7e45 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
@@ -79,12 +79,12 @@ public final class ExportStorageNodesExecutor implements
DistSQLQueryExecutor<Ex
private Map<String, Collection<ExportedStorageNode>>
getAllStorageNodes(final ShardingSphereMetaData metaData) {
Map<String, Collection<ExportedStorageNode>> storageNodes = new
LinkedHashMap<>();
- metaData.getDatabases().values().forEach(each -> {
+ for (ShardingSphereDatabase each : metaData.getAllDatabases()) {
if
(each.getResourceMetaData().getAllInstanceDataSourceNames().isEmpty()) {
- return;
+ continue;
}
storageNodes.putAll(generateDatabaseExportStorageNodesData(each));
- });
+ }
return storageNodes;
}
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
index 34f70664ee0..81e88ce46b6 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxyDatabaseConnectionManagerTest.java
@@ -120,7 +120,7 @@ class ProxyDatabaseConnectionManagerTest {
private ContextManager mockContextManager() {
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class,
RETURNS_DEEP_STUBS);
when(metaData.getDatabase(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS));
-
when(metaData.getDatabases().values().iterator().next().getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
+
when(metaData.getAllDatabases().iterator().next().getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
when(metaData.getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(0);
TransactionRule transactionRule = mock(TransactionRule.class);
when(transactionRule.getDefaultType()).thenReturn(TransactionType.LOCAL);
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
index 4f4ecd507f3..9d98488a8d8 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/ProxySQLExecutorTest.java
@@ -104,7 +104,7 @@ class ProxySQLExecutorTest {
when(databaseConnectionManager.getConnectionSession().getUsedDatabaseName()).thenReturn(DefaultDatabase.LOGIC_NAME);
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class,
RETURNS_DEEP_STUBS);
when(metaData.getDatabase(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS));
-
when(metaData.getDatabases().values().iterator().next().getProtocolType()).thenReturn(databaseType);
+
when(metaData.getAllDatabases().iterator().next().getProtocolType()).thenReturn(databaseType);
when(metaData.getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(0);
when(transactionRule.getDefaultType()).thenReturn(TransactionType.XA);
when(metaData.getGlobalRuleMetaData()).thenReturn(new
RuleMetaData(Arrays.asList(mock(SQLFederationRule.class), transactionRule)));
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 52306024517..417ae2424ca 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
@@ -49,7 +49,7 @@ public final class ShardingSphereProxyVersion {
*/
public static void setVersion(final ContextManager contextManager) {
CommonConstants.PROXY_VERSION.set(getProxyVersion());
-
contextManager.getMetaDataContexts().getMetaData().getDatabases().values().forEach(ShardingSphereProxyVersion::setDatabaseVersion);
+
contextManager.getMetaDataContexts().getMetaData().getAllDatabases().forEach(ShardingSphereProxyVersion::setDatabaseVersion);
}
private static String getProxyVersion() {
diff --git
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactory.java
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactory.java
index ae64a3eae2f..0b2a5a8322a 100644
---
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactory.java
+++
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactory.java
@@ -47,10 +47,10 @@ public final class FrontDatabaseProtocolTypeFactory {
return configuredDatabaseType.get();
}
MetaDataContexts metaDataContexts =
ProxyContext.getInstance().getContextManager().getMetaDataContexts();
- if (metaDataContexts.getMetaData().getDatabases().isEmpty()) {
+ if (metaDataContexts.getMetaData().getAllDatabases().isEmpty()) {
return TypedSPILoader.getService(DatabaseType.class,
DEFAULT_FRONTEND_DATABASE_PROTOCOL_TYPE);
}
- Optional<ShardingSphereDatabase> database =
metaDataContexts.getMetaData().getDatabases().values().stream().filter(ShardingSphereDatabase::containsDataSource).findFirst();
+ Optional<ShardingSphereDatabase> database =
metaDataContexts.getMetaData().getAllDatabases().stream().filter(ShardingSphereDatabase::containsDataSource).findFirst();
return database.isPresent()
?
database.get().getResourceMetaData().getStorageUnits().values().iterator().next().getStorageType()
: TypedSPILoader.getService(DatabaseType.class,
DEFAULT_FRONTEND_DATABASE_PROTOCOL_TYPE);
diff --git
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
index 81f6da4a516..f70d8d52937 100644
---
a/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
+++
b/proxy/frontend/core/src/test/java/org/apache/shardingsphere/proxy/frontend/state/impl/OKProxyStateTest.java
@@ -90,7 +90,7 @@ class OKProxyStateTest {
private ContextManager mockContextManager() {
ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class,
RETURNS_DEEP_STUBS);
when(metaData.getDatabase(DefaultDatabase.LOGIC_NAME)).thenReturn(mock(ShardingSphereDatabase.class,
RETURNS_DEEP_STUBS));
-
when(metaData.getDatabases().values().iterator().next().getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
+
when(metaData.getAllDatabases().iterator().next().getProtocolType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
"FIXTURE"));
when(metaData.getProps().<Integer>getValue(ConfigurationPropertyKey.KERNEL_EXECUTOR_SIZE)).thenReturn(0);
TransactionRule transactionRule = mock(TransactionRule.class);
when(transactionRule.getDefaultType()).thenReturn(TransactionType.XA);