You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/07/22 05:39:01 UTC
[shardingsphere] branch master updated: Refactor ShardingSphereDatabase.databases ConcurrentHashMap init index (#19444)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 09ae17b4e6c Refactor ShardingSphereDatabase.databases ConcurrentHashMap init index (#19444)
09ae17b4e6c is described below
commit 09ae17b4e6cc34590df3e675e8a6737f478eaa64
Author: zhaojinchao <zh...@apache.org>
AuthorDate: Fri Jul 22 13:38:51 2022 +0800
Refactor ShardingSphereDatabase.databases ConcurrentHashMap init index (#19444)
* Adjust create databases ConcurrentHashMap index
* Adjustment database name index
---
.../infra/metadata/ShardingSphereMetaData.java | 3 +--
.../metadata/database/ShardingSphereDatabasesFactory.java | 3 ++-
.../shardingsphere/transaction/rule/TransactionRule.java | 2 +-
.../apache/shardingsphere/mode/manager/ContextManager.java | 4 ++--
.../shardingsphere/mode/metadata/MetaDataContextsTest.java | 8 +++++---
.../DatabaseCommunicationEngineFactoryTest.java | 11 +++++++----
.../jdbc/JDBCDatabaseCommunicationEngineTest.java | 11 +++++++----
.../jdbc/datasource/JDBCBackendDataSourceTest.java | 14 ++++++++------
.../proxy/backend/context/ProxyContextTest.java | 9 +++++----
.../text/admin/DatabaseAdminQueryBackendHandlerTest.java | 13 ++++++++-----
.../admin/DatabaseOperateBackendHandlerFactoryTest.java | 11 +++++++----
.../text/distsql/DistSQLBackendHandlerFactoryTest.java | 9 ++++++---
.../protocol/FrontDatabaseProtocolTypeFactoryTest.java | 9 ++++++---
.../authentication/MySQLAuthenticationEngineTest.java | 11 ++++++-----
.../mysql/command/MySQLCommandExecutorFactoryTest.java | 6 +++++-
.../binary/execute/MySQLComStmtExecuteExecutorTest.java | 8 +++++---
.../cases/dal/dataset/db/mysql/show_databases.xml | 2 +-
.../mysql/show_databases.xml | 2 +-
.../mysql/show_databases.xml | 2 +-
.../cases/dal/dataset/encrypt/mysql/show_databases.xml | 2 +-
.../dataset/readwrite_splitting/mysql/show_databases.xml | 2 +-
.../dataset/sharding_governance/mysql/show_databases.xml | 2 +-
.../cases/dal/dataset/tbl/mysql/show_databases.xml | 2 +-
23 files changed, 88 insertions(+), 58 deletions(-)
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
index ba4fbf27c7d..625a1e3aaf9 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/ShardingSphereMetaData.java
@@ -29,7 +29,6 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
/**
* Meta data contexts.
@@ -48,7 +47,7 @@ public final class ShardingSphereMetaData {
}
public ShardingSphereMetaData(final Map<String, ShardingSphereDatabase> databases, final ShardingSphereRuleMetaData globalRuleMetaData, final ConfigurationProperties props) {
- this.databases = new ConcurrentHashMap<>(databases.size(), 1);
+ this.databases = databases;
databases.forEach((key, value) -> this.databases.put(key.toLowerCase(), value));
this.globalRuleMetaData = globalRuleMetaData;
this.props = props;
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
index 50e15d156c9..e9808fae23d 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/database/ShardingSphereDatabasesFactory.java
@@ -27,6 +27,7 @@ import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.concurrent.ConcurrentHashMap;
/**
* ShardingSphere databases factory.
@@ -63,7 +64,7 @@ public final class ShardingSphereDatabasesFactory {
final ConfigurationProperties props, final InstanceContext instanceContext) throws SQLException {
DatabaseType protocolType = DatabaseTypeEngine.getProtocolType(databaseConfigMap, props);
DatabaseType storageType = DatabaseTypeEngine.getStorageType(databaseConfigMap);
- Map<String, ShardingSphereDatabase> result = new HashMap<>(databaseConfigMap.size() + protocolType.getSystemDatabaseSchemaMap().size(), 1);
+ Map<String, ShardingSphereDatabase> result = new ConcurrentHashMap<>(databaseConfigMap.size() + protocolType.getSystemDatabaseSchemaMap().size(), 1);
result.putAll(createGenericDatabases(databaseConfigMap, protocolType, storageType, props, instanceContext));
result.putAll(createSystemDatabases(databaseConfigMap, protocolType));
return result;
diff --git a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
index eec58026a72..83738c8dd1d 100644
--- a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
+++ b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/rule/TransactionRule.java
@@ -88,7 +88,7 @@ public final class TransactionRule implements GlobalRule, ResourceHeldRule<Shard
@Override
public synchronized void closeStaleResource(final String databaseName) {
- if (!databases.containsKey(databaseName)) {
+ if (!databases.containsKey(databaseName.toLowerCase())) {
return;
}
rebuildEngine();
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index e486bb9bc70..709748b14a6 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -390,8 +390,8 @@ public final class ContextManager implements AutoCloseable {
}
private void persistMetaData(final MetaDataContexts metaDataContexts) {
- metaDataContexts.getMetaData().getDatabases().values().forEach(each -> each.getSchemas().forEach((schemaName, tables) ->
- metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(each.getName(), schemaName, tables)));
+ metaDataContexts.getMetaData().getDatabases().values().forEach(
+ each -> each.getSchemas().forEach((schemaName, tables) -> metaDataContexts.getPersistService().getDatabaseMetaDataService().persistMetaData(each.getName(), schemaName, tables)));
}
/**
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
index f1676283a4c..e117d8c8584 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsTest.java
@@ -30,7 +30,8 @@ import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
-import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
@@ -45,8 +46,9 @@ public final class MetaDataContextsTest {
@Test
public void assertGetDefaultMetaData() {
- ShardingSphereMetaData metaData = new ShardingSphereMetaData(
- Collections.singletonMap(DefaultDatabase.LOGIC_NAME, database), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties()));
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1, 1);
+ databases.put(DefaultDatabase.LOGIC_NAME, database);
+ ShardingSphereMetaData metaData = new ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties()));
assertThat(new MetaDataContexts(mock(MetaDataPersistService.class), metaData, mock(OptimizerContext.class)).getMetaData().getDatabase(DefaultDatabase.LOGIC_NAME), is(database));
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
index 6738f19d334..398b1b43163 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngineFactoryTest.java
@@ -34,6 +34,7 @@ import org.junit.Before;
import org.junit.Test;
import java.util.Collections;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
@@ -55,10 +56,12 @@ public final class DatabaseCommunicationEngineFactoryTest extends ProxyContextRe
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
+ when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
index 116d0bd2acb..c4dc7bfe1fa 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/JDBCDatabaseCommunicationEngineTest.java
@@ -65,6 +65,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+import java.util.LinkedHashMap;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
@@ -102,10 +103,12 @@ public final class JDBCDatabaseCommunicationEngineTest extends ProxyContextResto
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
+ when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
index 296d33c42c1..7b18c0f60af 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/datasource/JDBCBackendDataSourceTest.java
@@ -40,9 +40,9 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -74,11 +74,13 @@ public final class JDBCBackendDataSourceTest extends ProxyContextRestorer {
}
private Map<String, ShardingSphereDatabase> createDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getName()).thenReturn("schema");
- when(result.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
- when(result.getResource().getDataSources()).thenReturn(mockDataSources(2));
- return Collections.singletonMap("schema", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getName()).thenReturn("schema");
+ when(database.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
+ when(database.getResource().getDataSources()).thenReturn(mockDataSources(2));
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("schema", database);
+ return result;
}
private ShardingSphereRuleMetaData mockGlobalRuleMetaData() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
index 2cb04c77db5..e2b6378d526 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/context/ProxyContextTest.java
@@ -31,7 +31,6 @@ import org.apache.shardingsphere.proxy.backend.exception.NoDatabaseSelectedExcep
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
@@ -125,8 +124,10 @@ public final class ProxyContextTest extends ProxyContextRestorer {
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new H2DatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
index 1e93c5b79c7..e582dc49a39 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseAdminQueryBackendHandlerTest.java
@@ -41,6 +41,7 @@ import org.junit.Test;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
@@ -71,11 +72,13 @@ public final class DatabaseAdminQueryBackendHandlerTest extends ProxyContextRest
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getName()).thenReturn("db");
- when(result.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getName()).thenReturn("db");
+ when(database.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
index dbb4fa79776..c78db33cc01 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/admin/DatabaseOperateBackendHandlerFactoryTest.java
@@ -50,6 +50,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -134,10 +135,12 @@ public final class DatabaseOperateBackendHandlerFactoryTest extends ProxyContext
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
private void setGovernanceMetaDataContexts(final boolean isGovernance) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
index 6ae3aa165f7..083babfe98f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -71,6 +71,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -97,9 +98,11 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
}
private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- return Collections.singletonMap("db", result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put("db", database);
+ return result;
}
@Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index f34c558797e..c60d9bd6b59 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -36,6 +36,7 @@ import org.junit.Test;
import java.util.Collections;
import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -94,8 +95,10 @@ public final class FrontDatabaseProtocolTypeFactoryTest extends ProxyContextRest
}
private Map<String, ShardingSphereDatabase> mockDatabases() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
- return Collections.singletonMap(DefaultDatabase.LOGIC_NAME, result);
+ ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(database.getResource().getDatabaseType()).thenReturn(new MySQLDatabaseType());
+ Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
+ result.put(DefaultDatabase.LOGIC_NAME, database);
+ return result;
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
index 581e78c8ac5..62b6a933908 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/authentication/MySQLAuthenticationEngineTest.java
@@ -49,9 +49,10 @@ import org.junit.Test;
import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
-import java.util.Collections;
import java.util.Optional;
import java.util.Properties;
+import java.util.Map;
+import java.util.LinkedHashMap;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -160,10 +161,10 @@ public final class MySQLAuthenticationEngineTest extends ProxyContextRestorer {
private void setMetaDataContexts() {
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
- new ShardingSphereMetaData(Collections.singletonMap("sharding_db", mock(ShardingSphereDatabase.class)), mock(ShardingSphereRuleMetaData.class),
- new ConfigurationProperties(new Properties())),
- mock(OptimizerContext.class));
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1, 1);
+ databases.put("sharding_db", mock(ShardingSphereDatabase.class));
+ MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class), new ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class),
+ new ConfigurationProperties(new Properties())), mock(OptimizerContext.class));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
index 882a7822c88..5b0a2ac9e91 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecutorFactoryTest.java
@@ -66,6 +66,8 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -91,9 +93,11 @@ public final class MySQLCommandExecutorFactoryTest extends ProxyContextRestorer
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
when(backendConnection.getConnectionSession()).thenReturn(connectionSession);
ShardingSphereDatabase database = mockDatabase();
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1, 1);
+ databases.put("logic_db", database);
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
- new ShardingSphereMetaData(Collections.singletonMap("logic_db", database), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())),
+ new ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())),
mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
index 061053fd882..ca2c39a5bab 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java
@@ -78,6 +78,8 @@ import java.sql.Types;
import java.util.Collections;
import java.util.Iterator;
import java.util.Optional;
+import java.util.Map;
+import java.util.LinkedHashMap;
import java.util.Properties;
import java.util.function.Supplier;
@@ -110,11 +112,11 @@ public final class MySQLComStmtExecuteExecutorTest extends ProxyContextRestorer
@Before
public void setUp() {
- ShardingSphereDatabase database = mockDatabase();
+ Map<String, ShardingSphereDatabase> databases = new LinkedHashMap<>(1, 1);
+ databases.put("logic_db", mockDatabase());
ShardingSphereRuleMetaData metaData = mock(ShardingSphereRuleMetaData.class);
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
- new ShardingSphereMetaData(Collections.singletonMap("logic_db", database), metaData, new ConfigurationProperties(new Properties())),
- mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
+ new ShardingSphereMetaData(databases, metaData, new ConfigurationProperties(new Properties())), mock(OptimizerContext.class, RETURNS_DEEP_STUBS));
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
ProxyContext.init(contextManager);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
index 43751a02ca3..e781a7b14f8 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/db/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="db" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
index 7c09a1af6d9..9e95dd770e9 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="dbtbl_with_readwrite_splitting" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
index 8f71dab57ca..6c82fe5a8ca 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/dbtbl_with_readwrite_splitting_and_encrypt/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="dbtbl_with_readwrite_splitting_and_encrypt" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
index a1b882c67b9..52ed5f58683 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/encrypt/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="encrypt" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
index 948283ae84a..fe5ff48cdb5 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/readwrite_splitting/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="readwrite_splitting" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
index 314e6dfcd63..4bd1cb613dc 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/sharding_governance/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="sharding_governance" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
index b7eb1af6f4e..e60d4eb0a15 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/resources/cases/dal/dataset/tbl/mysql/show_databases.xml
@@ -20,8 +20,8 @@
<column name="schema_name" />
</metadata>
<row values="tbl" />
- <row values="mysql" />
<row values="information_schema" />
<row values="performance_schema" />
+ <row values="mysql" />
<row values="sys" />
</dataset>