You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2023/01/27 16:19:32 UTC
[shardingsphere] branch master updated: Refactor usage of proxy-backend module (#23749)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 c7d602fd1b3 Refactor usage of proxy-backend module (#23749)
c7d602fd1b3 is described below
commit c7d602fd1b3dfc0dc3592f25ca10953314c3af06
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Jan 28 00:19:24 2023 +0800
Refactor usage of proxy-backend module (#23749)
---
.../communication/DatabaseCommunicationEngine.java | 12 +-----------
.../admin/mysql/executor/ShowCurrentUserExecutor.java | 12 ++++--------
.../proxy/backend/handler/cdc/CDCBackendHandler.java | 6 +++---
.../ReadwriteSplittingRuleConfigurationImportChecker.java | 4 ++--
.../checker/ShadowRuleConfigurationImportChecker.java | 4 ++--
.../checker/ShardingRuleConfigurationImportChecker.java | 4 ++--
.../ShowStatusFromReadwriteSplittingRulesHandler.java | 2 +-
.../storage/unit/RegisterStorageUnitBackendHandler.java | 4 ++--
.../storage/unit/UnregisterStorageUnitBackendHandler.java | 13 +++++--------
.../handler/distsql/rql/rule/ShowSingleTableExecutor.java | 4 ++--
.../distsql/rql/storage/unit/ShowStorageUnitExecutor.java | 15 +++++----------
.../jdbc/DatabaseCommunicationEngineTest.java | 4 ++--
.../ShardingRuleConfigurationImportCheckerTest.java | 5 +++--
.../unit/RegisterStorageUnitBackendHandlerTest.java | 2 +-
.../unit/UnregisterStorageUnitBackendHandlerTest.java | 11 ++++++-----
.../handler/distsql/rql/ShowSingleTableExecutorTest.java | 5 +----
16 files changed, 42 insertions(+), 65 deletions(-)
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
index 976f297e712..56c9cb4752c 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
@@ -48,7 +48,6 @@ import org.apache.shardingsphere.infra.merge.MergeEngine;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.schema.util.SystemSchemaUtil;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -312,19 +311,10 @@ public final class DatabaseCommunicationEngine implements DatabaseBackendHandler
}
private boolean isNeedAccumulate(final SQLStatementContext<?> sqlStatementContext) {
- Optional<DataNodeContainedRule> dataNodeContainedRule = findDataNodeContainedRule();
+ Optional<DataNodeContainedRule> dataNodeContainedRule = database.getRuleMetaData().findSingleRule(DataNodeContainedRule.class);
return dataNodeContainedRule.isPresent() && dataNodeContainedRule.get().isNeedAccumulate(sqlStatementContext.getTablesContext().getTableNames());
}
- private Optional<DataNodeContainedRule> findDataNodeContainedRule() {
- for (ShardingSphereRule each : database.getRuleMetaData().getRules()) {
- if (each instanceof DataNodeContainedRule) {
- return Optional.of((DataNodeContainedRule) each);
- }
- }
- return Optional.empty();
- }
-
/**
* Goto next result value.
*
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/executor/ShowCurrentUserExecutor.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/executor/ShowCurrentUserExecutor.java
index 10c80cdba60..40d7c2d0b1d 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/executor/ShowCurrentUserExecutor.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/admin/mysql/executor/ShowCurrentUserExecutor.java
@@ -23,17 +23,15 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryRe
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.metadata.RawQueryResultColumnMetaData;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.raw.metadata.RawQueryResultMetaData;
import org.apache.shardingsphere.infra.merge.result.MergedResult;
+import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataMergedResult;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.user.Grantee;
import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminQueryExecutor;
-import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataMergedResult;
+import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import java.sql.Types;
-import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
@@ -51,10 +49,8 @@ public final class ShowCurrentUserExecutor implements DatabaseAdminQueryExecutor
@Override
public void execute(final ConnectionSession connectionSession) {
- Collection<ShardingSphereRule> rules = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getRules();
- Optional<Grantee> grantee = rules.stream().filter(each -> each instanceof AuthorityRule)
- .map(each -> ((AuthorityRule) each).findUser(connectionSession.getGrantee())).filter(Optional::isPresent)
- .map(Optional::get).map(ShardingSphereUser::getGrantee).findFirst();
+ AuthorityRule authorityRule = ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getGlobalRuleMetaData().getSingleRule(AuthorityRule.class);
+ Optional<Grantee> grantee = authorityRule.findUser(connectionSession.getGrantee()).map(ShardingSphereUser::getGrantee);
mergedResult = new LocalDataMergedResult(Collections.singleton(new LocalDataQueryResultRow(grantee.isPresent() ? grantee.get().toString() : "")));
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/cdc/CDCBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/cdc/CDCBackendHandler.java
index 44b16467d64..7e9fa85d54d 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/cdc/CDCBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/cdc/CDCBackendHandler.java
@@ -82,13 +82,13 @@ public final class CDCBackendHandler {
for (TableName each : createSubscription.getTableNamesList()) {
tableNames.add(Strings.isNullOrEmpty(each.getSchema()) ? each.getName() : String.join(".", each.getSchema(), each.getName()));
}
- Optional<ShardingRule> rule = database.getRuleMetaData().getRules().stream().filter(each -> each instanceof ShardingRule).map(each -> (ShardingRule) each).findFirst();
- if (!rule.isPresent()) {
+ Optional<ShardingRule> shardingRule = database.getRuleMetaData().findSingleRule(ShardingRule.class);
+ if (!shardingRule.isPresent()) {
return CDCResponseGenerator.failed(request.getRequestId(), CDCResponseErrorCode.SERVER_ERROR, "Not find sharding rule");
}
Map<String, List<DataNode>> actualDataNodesMap = new HashMap<>();
for (String each : tableNames) {
- actualDataNodesMap.put(each, getActualDataNodes(rule.get(), each));
+ actualDataNodesMap.put(each, getActualDataNodes(shardingRule.get(), each));
}
CreateSubscriptionJobParameter parameter = new CreateSubscriptionJobParameter(createSubscription.getDatabase(), tableNames, createSubscription.getSubscriptionName(),
createSubscription.getSubscriptionMode().name(), actualDataNodesMap, createSubscription.getIncrementalGlobalOrderly());
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ReadwriteSplittingRuleConfigurationImportChecker.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ReadwriteSplittingRuleConfigurationImportChecker.java
index afdb46c506c..889bf71e624 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ReadwriteSplittingRuleConfigurationImportChecker.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ReadwriteSplittingRuleConfigurationImportChecker.java
@@ -75,8 +75,8 @@ public final class ReadwriteSplittingRuleConfigurationImportChecker {
}
private Collection<String> getLogicDataSources(final ShardingSphereDatabase database) {
- return database.getRuleMetaData().getRules().stream().filter(each -> each instanceof DataSourceContainedRule)
- .map(each -> ((DataSourceContainedRule) each).getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
+ return database.getRuleMetaData().findRules(DataSourceContainedRule.class).stream()
+ .map(each -> each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
}
private void checkLoadBalancers(final ReadwriteSplittingRuleConfiguration currentRuleConfig) {
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
index 4fb3d15fc09..207544d98fb 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShadowRuleConfigurationImportChecker.java
@@ -76,8 +76,8 @@ public final class ShadowRuleConfigurationImportChecker {
}
private Collection<String> getLogicDataSources(final ShardingSphereDatabase database) {
- return database.getRuleMetaData().getRules().stream().filter(each -> each instanceof DataSourceContainedRule)
- .map(each -> ((DataSourceContainedRule) each).getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
+ return database.getRuleMetaData().findRules(DataSourceContainedRule.class).stream()
+ .map(each -> each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
}
private void checkTables(final ShadowRuleConfiguration currentRuleConfig, final String databaseName) {
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
index 8b1e9e0fd34..91caee426e4 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
@@ -128,7 +128,7 @@ public final class ShardingRuleConfigurationImportChecker {
}
private Collection<String> getLogicResources(final ShardingSphereDatabase database) {
- return database.getRuleMetaData().getRules().stream().filter(each -> each instanceof DataSourceContainedRule)
- .map(each -> ((DataSourceContainedRule) each).getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
+ return database.getRuleMetaData().findRules(DataSourceContainedRule.class).stream()
+ .map(each -> each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toCollection(LinkedHashSet::new));
}
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
index 97cc9a92465..190389a51f1 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesHandler.java
@@ -88,7 +88,7 @@ public final class ShowStatusFromReadwriteSplittingRulesHandler extends Queryabl
private Collection<String> getAllReadResources(final ShardingSphereDatabase database, final String groupName) {
Collection<String> exportKeys = Arrays.asList(ExportableConstants.EXPORT_STATIC_READWRITE_SPLITTING_RULE, ExportableConstants.EXPORT_DYNAMIC_READWRITE_SPLITTING_RULE);
- Map<String, Object> exportMap = database.getRuleMetaData().getRules().stream().filter(each -> each instanceof ExportableRule).map(each -> (ExportableRule) each)
+ Map<String, Object> exportMap = database.getRuleMetaData().findRules(ExportableRule.class).stream()
.filter(each -> new RuleExportEngine(each).containExportableKey(exportKeys)).findFirst().map(each -> new RuleExportEngine(each).export(exportKeys)).orElse(Collections.emptyMap());
Map<String, Map<String, String>> allReadwriteRuleMap = exportMap.values().stream().map(each -> ((Map<String, Map<String, String>>) each).entrySet())
.flatMap(Collection::stream).collect(Collectors.toMap(Entry::getKey, Entry::getValue, (oldValue, currentValue) -> currentValue, LinkedHashMap::new));
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
index f136f588c28..ef13816a4fc 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandler.java
@@ -116,7 +116,7 @@ public final class RegisterStorageUnitBackendHandler extends StorageUnitDefiniti
}
private Collection<String> getLogicalDataSourceNames(final String databaseName) {
- return ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().getRules().stream().filter(each -> each instanceof DataSourceContainedRule)
- .map(each -> ((DataSourceContainedRule) each).getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toList());
+ return ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().findRules(DataSourceContainedRule.class).stream()
+ .map(each -> each.getDataSourceMapper().keySet()).flatMap(Collection::stream).collect(Collectors.toList());
}
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
index 715e7173fac..f092af84448 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandler.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRe
import org.apache.shardingsphere.distsql.handler.exception.storageunit.StorageUnitInUsedException;
import org.apache.shardingsphere.distsql.parser.statement.rdl.drop.UnregisterStorageUnitStatement;
import org.apache.shardingsphere.infra.datanode.DataNode;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
import org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -96,13 +95,11 @@ public final class UnregisterStorageUnitBackendHandler extends StorageUnitDefini
private Multimap<String, String> getInUsedResources(final String databaseName) {
Multimap<String, String> result = LinkedListMultimap.create();
- for (ShardingSphereRule each : ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().getRules()) {
- if (each instanceof DataSourceContainedRule) {
- getInUsedResourceNames((DataSourceContainedRule) each).forEach(eachResource -> result.put(eachResource, each.getType()));
- }
- if (each instanceof DataNodeContainedRule) {
- getInUsedResourceNames((DataNodeContainedRule) each).forEach(eachResource -> result.put(eachResource, each.getType()));
- }
+ for (DataSourceContainedRule each : ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().findRules(DataSourceContainedRule.class)) {
+ getInUsedResourceNames(each).forEach(eachResource -> result.put(eachResource, each.getType()));
+ }
+ for (DataNodeContainedRule each : ProxyContext.getInstance().getDatabase(databaseName).getRuleMetaData().findRules(DataNodeContainedRule.class)) {
+ getInUsedResourceNames(each).forEach(eachResource -> result.put(eachResource, each.getType()));
}
return result;
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java
index dbe69333927..2c34b192316 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/rule/ShowSingleTableExecutor.java
@@ -53,8 +53,8 @@ public final class ShowSingleTableExecutor implements RQLExecutor<ShowSingleTabl
}
private Collection<DataNode> getDataNodes(final ShardingSphereDatabase database, final ShowSingleTableStatement sqlStatement) {
- Stream<DataNode> singleTableNodes = database.getRuleMetaData().getRules().stream().filter(each -> each instanceof SingleRule)
- .map(each -> (SingleRule) each).map(each -> each.getSingleTableDataNodes().values()).flatMap(Collection::stream).filter(Objects::nonNull).map(each -> each.iterator().next());
+ Stream<DataNode> singleTableNodes = database.getRuleMetaData().findRules(SingleRule.class).stream()
+ .map(each -> each.getSingleTableDataNodes().values()).flatMap(Collection::stream).filter(Objects::nonNull).map(each -> each.iterator().next());
if (sqlStatement.getTableName().isPresent()) {
singleTableNodes = singleTableNodes.filter(each -> sqlStatement.getTableName().get().equals(each.getTableName()));
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
index cac6a22bb01..942817a1b70 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/storage/unit/ShowStorageUnitExecutor.java
@@ -30,7 +30,6 @@ import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryRes
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
import org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
@@ -109,15 +108,11 @@ public final class ShowStorageUnitExecutor implements RQLExecutor<ShowStorageUni
private Multimap<String, String> getInUsedResources(final ShardingSphereRuleMetaData ruleMetaData) {
Multimap<String, String> result = LinkedListMultimap.create();
- for (ShardingSphereRule each : ruleMetaData.getRules()) {
- if (each instanceof DataSourceContainedRule) {
- Collection<String> inUsedResourceNames = getInUsedResourceNames((DataSourceContainedRule) each);
- inUsedResourceNames.forEach(eachResource -> result.put(eachResource, each.getType()));
- }
- if (each instanceof DataNodeContainedRule) {
- Collection<String> inUsedResourceNames = getInUsedResourceNames((DataNodeContainedRule) each);
- inUsedResourceNames.forEach(eachResource -> result.put(eachResource, each.getType()));
- }
+ for (DataSourceContainedRule each : ruleMetaData.findRules(DataSourceContainedRule.class)) {
+ getInUsedResourceNames(each).forEach(eachResource -> result.put(eachResource, each.getType()));
+ }
+ for (DataNodeContainedRule each : ruleMetaData.findRules(DataNodeContainedRule.class)) {
+ getInUsedResourceNames(each).forEach(eachResource -> result.put(eachResource, each.getType()));
}
return result;
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
index 966700ed866..45002e03b82 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
@@ -201,8 +201,8 @@ public final class DatabaseCommunicationEngineTest extends ProxyContextRestorer
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
ShardingSphereColumn column = new ShardingSphereColumn("order_id", Types.INTEGER, true, false, false, true, false);
when(result.getSchema(DefaultDatabase.LOGIC_NAME).getTable("t_logic_order")).thenReturn(
- new ShardingSphereTable("t_logic_order", Collections.singletonList(column), Collections.singletonList(new ShardingSphereIndex("order_id")), Collections.emptyList()));
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.singletonList(mock(ShardingRule.class)));
+ new ShardingSphereTable("t_logic_order", Collections.singleton(column), Collections.singleton(new ShardingSphereIndex("order_id")), Collections.emptyList()));
+ when(result.getRuleMetaData().getRules()).thenReturn(Collections.singleton(mock(ShardingRule.class)));
when(result.getName()).thenReturn("sharding_schema");
return result;
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportCheckerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportCheckerTest.java
index 4d8ac5cc6a8..98cc3cb0e17 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportCheckerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportCheckerTest.java
@@ -22,6 +22,7 @@ import org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleExc
import org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
+import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.junit.Test;
@@ -71,14 +72,14 @@ public final class ShardingRuleConfigurationImportCheckerTest {
Collection<String> dataSources = new LinkedList<>();
dataSources.add("su_1");
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(dataSources);
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ when(result.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList()));
return result;
}
private ShardingSphereDatabase mockDatabase() {
ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
- when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ when(result.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList()));
return result;
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
index fb7c85da253..e075e255ed7 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/RegisterStorageUnitBackendHandlerTest.java
@@ -119,7 +119,7 @@ public final class RegisterStorageUnitBackendHandlerTest extends ProxyContextRes
ProxyContext.init(contextManager);
DataSourceContainedRule rule = mock(DataSourceContainedRule.class);
when(rule.getDataSourceMapper()).thenReturn(Collections.singletonMap("ds_0", Collections.emptyList()));
- when(database.getRuleMetaData().getRules()).thenReturn(Collections.singletonList(rule));
+ when(database.getRuleMetaData().findRules(DataSourceContainedRule.class)).thenReturn(Collections.singletonList(rule));
registerStorageUnitBackendHandler.execute("test_db", createRegisterStorageUnitStatement());
}
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
index e42f6e5a0b2..acfb9e958cb 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/storage/unit/UnregisterStorageUnitBackendHandlerTest.java
@@ -26,6 +26,8 @@ import org.apache.shardingsphere.infra.instance.mode.ModeContextManager;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.rule.identifier.type.DataNodeContainedRule;
+import org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
@@ -103,7 +105,6 @@ public final class UnregisterStorageUnitBackendHandlerTest extends ProxyContextR
@Test
public void assertExecute() throws SQLException {
- when(ruleMetaData.getRules()).thenReturn(Collections.emptyList());
when(resourceMetaData.getDataSources()).thenReturn(Collections.singletonMap("foo_ds", dataSource));
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
@@ -119,7 +120,7 @@ public final class UnregisterStorageUnitBackendHandlerTest extends ProxyContextR
@Test(expected = StorageUnitInUsedException.class)
public void assertStorageUnitNameInUseExecute() {
- when(ruleMetaData.getRules()).thenReturn(Collections.singleton(shadowRule));
+ 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));
@@ -130,7 +131,7 @@ public final class UnregisterStorageUnitBackendHandlerTest extends ProxyContextR
@Test(expected = StorageUnitInUsedException.class)
public void assertStorageUnitNameInUseWithoutIgnoreSingleTables() {
- when(ruleMetaData.getRules()).thenReturn(Collections.singleton(singleTableRule));
+ when(ruleMetaData.findRules(DataNodeContainedRule.class)).thenReturn(Collections.singleton(singleTableRule));
when(singleTableRule.getType()).thenReturn("SingleTableRule");
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
@@ -143,7 +144,7 @@ public final class UnregisterStorageUnitBackendHandlerTest extends ProxyContextR
@Test
public void assertStorageUnitNameInUseIgnoreSingleTables() throws SQLException {
- when(ruleMetaData.getRules()).thenReturn(Collections.singleton(singleTableRule));
+ when(ruleMetaData.findRules(DataNodeContainedRule.class)).thenReturn(Collections.singleton(singleTableRule));
when(singleTableRule.getType()).thenReturn("SingleRule");
DataNode dataNode = mock(DataNode.class);
when(dataNode.getDataSourceName()).thenReturn("foo_ds");
@@ -165,7 +166,7 @@ public final class UnregisterStorageUnitBackendHandlerTest extends ProxyContextR
@Test(expected = DistSQLException.class)
public void assertStorageUnitNameInUseWithIfExists() {
- when(ruleMetaData.getRules()).thenReturn(Collections.singleton(shadowRule));
+ 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(contextManager.getMetaDataContexts().getMetaData().getDatabase("test")).thenReturn(database);
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/ShowSingleTableExecutorTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/ShowSingleTableExecutorTest.java
index 51fddbf09db..4032c714e72 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/ShowSingleTableExecutorTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rql/ShowSingleTableExecutorTest.java
@@ -58,10 +58,7 @@ public final class ShowSingleTableExecutorTest {
Map<String, Collection<DataNode>> singleTableDataNodeMap = new HashMap<>();
singleTableDataNodeMap.put("t_order", Collections.singletonList(new DataNode("ds_1", "t_order")));
singleTableDataNodeMap.put("t_order_item", Collections.singletonList(new DataNode("ds_2", "t_order_item")));
- Collection<ShardingSphereRule> rules = new LinkedList<>();
- rules.add(mockSingleTableRule(singleTableDataNodeMap));
- ShardingSphereRuleMetaData ruleMetaData = mock(ShardingSphereRuleMetaData.class);
- when(ruleMetaData.getRules()).thenReturn(rules);
+ ShardingSphereRuleMetaData ruleMetaData = new ShardingSphereRuleMetaData(new LinkedList<>(Collections.singleton(mockSingleTableRule(singleTableDataNodeMap))));
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
}