This is an automated email from the ASF dual-hosted git repository. panjuan 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 291d3087df3 Decouple RuleMetaData.configuration of ShardingBroadcastTableRuleQueryResultSet (#18549) 291d3087df3 is described below commit 291d3087df31f690196098c834caadd2da15687d Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Thu Jun 23 22:40:19 2022 +0800 Decouple RuleMetaData.configuration of ShardingBroadcastTableRuleQueryResultSet (#18549) --- .../query/ShardingBroadcastTableRuleQueryResultSet.java | 9 ++++----- .../query/ShardingBroadcastTableRuleQueryResultSetTest.java | 13 +++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBroadcastTableRuleQueryResultSet.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBroadcastTableRuleQueryResultSet.java index 7e81510e2eb..6b727b81fee 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBroadcastTableRuleQueryResultSet.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/main/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShardingBroadcastTableRuleQueryResultSet.java @@ -17,10 +17,10 @@ package org.apache.shardingsphere.sharding.distsql.handler.query; -import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.infra.distsql.query.DistSQLResultSet; -import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration; +import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBroadcastTableRulesStatement; +import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement; import java.util.Collection; @@ -37,9 +37,8 @@ public final class ShardingBroadcastTableRuleQueryResultSet implements DistSQLRe @Override public void init(final ShardingSphereDatabase database, final SQLStatement sqlStatement) { - Optional<ShardingRuleConfiguration> shardingRuleConfig = database.getRuleMetaData().getConfigurations() - .stream().filter(each -> each instanceof ShardingRuleConfiguration).map(each -> (ShardingRuleConfiguration) each).findFirst(); - data = shardingRuleConfig.map(optional -> optional.getBroadcastTables().iterator()).orElseGet(Collections::emptyIterator); + Optional<ShardingRule> rule = database.getRuleMetaData().findSingleRule(ShardingRule.class); + data = rule.map(optional -> optional.getBroadcastTables().iterator()).orElseGet(Collections::emptyIterator); } @Override diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBroadcastTableRuleQueryResultSetTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBroadcastTableRuleQueryResultSetTest.java index c46bcb5b3f4..cdcf80e0c02 100644 --- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBroadcastTableRuleQueryResultSetTest.java +++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-distsql/shardingsphere-sharding-distsql-handler/src/test/java/org/apache/shardingsphere/sharding/distsql/query/ShardingBroadcastTableRuleQueryResultSetTest.java @@ -17,16 +17,16 @@ package org.apache.shardingsphere.sharding.distsql.query; -import org.apache.shardingsphere.infra.config.RuleConfiguration; import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase; -import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration; import org.apache.shardingsphere.sharding.distsql.handler.query.ShardingBroadcastTableRuleQueryResultSet; import org.apache.shardingsphere.sharding.distsql.parser.statement.ShowShardingBroadcastTableRulesStatement; +import org.apache.shardingsphere.sharding.rule.ShardingRule; import org.junit.Test; import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.Optional; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @@ -39,7 +39,8 @@ public final class ShardingBroadcastTableRuleQueryResultSetTest { @Test public void assertGetRowData() { ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS); - when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createRuleConfiguration())); + ShardingRule rule = mockShardingRule(); + when(database.getRuleMetaData().findSingleRule(ShardingRule.class)).thenReturn(Optional.of(rule)); ShardingBroadcastTableRuleQueryResultSet resultSet = new ShardingBroadcastTableRuleQueryResultSet(); resultSet.init(database, mock(ShowShardingBroadcastTableRulesStatement.class)); Collection<Object> actual = resultSet.getRowData(); @@ -47,9 +48,9 @@ public final class ShardingBroadcastTableRuleQueryResultSetTest { assertThat(actual, is(Collections.singleton("t_order"))); } - private RuleConfiguration createRuleConfiguration() { - ShardingRuleConfiguration result = new ShardingRuleConfiguration(); - result.getBroadcastTables().addAll(Arrays.asList("t_order", "t_order_item")); + private ShardingRule mockShardingRule() { + ShardingRule result = mock(ShardingRule.class); + when(result.getBroadcastTables()).thenReturn(Arrays.asList("t_order", "t_order_item")); return result; } }