You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/06/20 03:38:09 UTC

[shardingsphere] branch master updated: Remove unused parameters from BroadcastRouteEngineFactory (#26448)

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 f15df7dc52c Remove unused parameters from BroadcastRouteEngineFactory (#26448)
f15df7dc52c is described below

commit f15df7dc52c33e2c3f26abcf6c86d2bd3a4ee9bb
Author: jiangML <10...@qq.com>
AuthorDate: Tue Jun 20 11:38:03 2023 +0800

    Remove unused parameters from BroadcastRouteEngineFactory (#26448)
---
 .../broadcast/route/BroadcastSQLRouter.java        |  2 +-
 .../route/engine/BroadcastRouteEngineFactory.java  | 19 ++++++--------
 .../broadcast/rule/BroadcastRule.java              | 29 +++++++---------------
 .../route/BroadcastRouteEngineFactoryTest.java     | 10 +-------
 .../engine/type/ShardingRouteEngineFactory.java    |  5 ++--
 5 files changed, 20 insertions(+), 45 deletions(-)

diff --git a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouter.java b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouter.java
index fa643b5878f..d12dae1642c 100644
--- a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouter.java
+++ b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/BroadcastSQLRouter.java
@@ -63,7 +63,7 @@ public final class BroadcastSQLRouter implements SQLRouter<BroadcastRule> {
     public RouteContext createRouteContext(final QueryContext queryContext, final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database,
                                            final BroadcastRule rule, final ConfigurationProperties props, final ConnectionContext connectionContext) {
         RouteContext result = new RouteContext();
-        BroadcastRouteEngineFactory.newInstance(rule, database, queryContext, props, connectionContext, globalRuleMetaData).route(result, rule);
+        BroadcastRouteEngineFactory.newInstance(rule, database, queryContext, connectionContext).route(result, rule);
         return result;
     }
     
diff --git a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactory.java b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactory.java
index 0705cbe305a..7e92cb0968a 100644
--- a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactory.java
+++ b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/route/engine/BroadcastRouteEngineFactory.java
@@ -30,10 +30,8 @@ import org.apache.shardingsphere.infra.binder.statement.ddl.CloseStatementContex
 import org.apache.shardingsphere.infra.binder.type.CursorAvailable;
 import org.apache.shardingsphere.infra.binder.type.IndexAvailable;
 import org.apache.shardingsphere.infra.binder.type.TableAvailable;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.database.schema.QualifiedTable;
 import org.apache.shardingsphere.infra.metadata.database.schema.util.IndexMetaDataUtils;
 import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
@@ -64,13 +62,11 @@ public final class BroadcastRouteEngineFactory {
      * @param broadcastRule broadcast rule
      * @param database database
      * @param queryContext query context
-     * @param props props
      * @param connectionContext connection context
-     * @param globalRuleMetaData global rule metadata
      * @return broadcast route engine
      */
     public static BroadcastRouteEngine newInstance(final BroadcastRule broadcastRule, final ShardingSphereDatabase database, final QueryContext queryContext,
-                                                   final ConfigurationProperties props, final ConnectionContext connectionContext, final ShardingSphereRuleMetaData globalRuleMetaData) {
+                                                   final ConnectionContext connectionContext) {
         SQLStatementContext sqlStatementContext = queryContext.getSqlStatementContext();
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
         if (sqlStatement instanceof TCLStatement) {
@@ -80,13 +76,13 @@ public final class BroadcastRouteEngineFactory {
             if (sqlStatementContext instanceof CursorAvailable) {
                 return getCursorRouteEngine(broadcastRule, sqlStatementContext, connectionContext);
             }
-            return getDDLRoutingEngine(broadcastRule, database, queryContext, connectionContext);
+            return getDDLRoutingEngine(broadcastRule, database, queryContext);
         }
         if (sqlStatement instanceof DALStatement) {
-            return getDALRoutingEngine(broadcastRule, database, queryContext);
+            return getDALRoutingEngine(broadcastRule, queryContext);
         }
         if (sqlStatement instanceof DCLStatement) {
-            return getDCLRoutingEngine(broadcastRule, database, queryContext);
+            return getDCLRoutingEngine(broadcastRule, queryContext);
         }
         return getDQLRoutingEngine(broadcastRule, queryContext, connectionContext);
     }
@@ -104,8 +100,7 @@ public final class BroadcastRouteEngineFactory {
         return new BroadcastIgnoreRoutingEngine();
     }
     
-    private static BroadcastRouteEngine getDDLRoutingEngine(final BroadcastRule broadcastRule, final ShardingSphereDatabase database,
-                                                            final QueryContext queryContext, final ConnectionContext connectionContext) {
+    private static BroadcastRouteEngine getDDLRoutingEngine(final BroadcastRule broadcastRule, final ShardingSphereDatabase database, final QueryContext queryContext) {
         SQLStatementContext sqlStatementContext = queryContext.getSqlStatementContext();
         Collection<String> tableNames = getTableNames(database, sqlStatementContext);
         if (broadcastRule.isAllBroadcastTables(tableNames)) {
@@ -134,7 +129,7 @@ public final class BroadcastRouteEngineFactory {
         return result;
     }
     
-    private static BroadcastRouteEngine getDALRoutingEngine(final BroadcastRule broadcastRule, final ShardingSphereDatabase database, final QueryContext queryContext) {
+    private static BroadcastRouteEngine getDALRoutingEngine(final BroadcastRule broadcastRule, final QueryContext queryContext) {
         SQLStatementContext sqlStatementContext = queryContext.getSqlStatementContext();
         SQLStatement sqlStatement = sqlStatementContext.getSqlStatement();
         if (sqlStatement instanceof MySQLUseStatement) {
@@ -148,7 +143,7 @@ public final class BroadcastRouteEngineFactory {
         return new BroadcastIgnoreRoutingEngine();
     }
     
-    private static BroadcastRouteEngine getDCLRoutingEngine(final BroadcastRule broadcastRule, final ShardingSphereDatabase database, final QueryContext queryContext) {
+    private static BroadcastRouteEngine getDCLRoutingEngine(final BroadcastRule broadcastRule, final QueryContext queryContext) {
         SQLStatementContext sqlStatementContext = queryContext.getSqlStatementContext();
         Collection<String> broadcastRuleTableNames = broadcastRule.getBroadcastRuleTableNames(sqlStatementContext.getTablesContext().getTableNames());
         if (isDCLForSingleTable(sqlStatementContext) && !broadcastRuleTableNames.isEmpty() || broadcastRule.isAllBroadcastTables(broadcastRuleTableNames)) {
diff --git a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/BroadcastRule.java b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/BroadcastRule.java
index ae0ced2d75b..f80d1a604e2 100644
--- a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/BroadcastRule.java
+++ b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/rule/BroadcastRule.java
@@ -29,7 +29,6 @@ import javax.sql.DataSource;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.LinkedHashSet;
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.Optional;
@@ -61,38 +60,28 @@ public final class BroadcastRule implements DatabaseRule, DataNodeContainedRule,
         this.databaseName = databaseName;
         dataSourceNames = getDataSourceNames(dataSources);
         tables = createBroadcastTables(configuration.getTables());
-        logicalTableMapper = createLogicalTableMapper();
-        actualTableMapper = createActualTableMapper();
-        tableDataNodes = createShardingTableDataNodes(dataSourceNames);
+        logicalTableMapper = createTableMapper();
+        actualTableMapper = createTableMapper();
+        tableDataNodes = createShardingTableDataNodes(dataSourceNames, tables);
     }
     
     private Collection<String> getDataSourceNames(final Map<String, DataSource> dataSources) {
-        Collection<String> result = new LinkedHashSet<>();
-        if (null != dataSources) {
-            result.addAll(dataSources.keySet());
-        }
-        return result;
+        return new LinkedList<>(dataSources.keySet());
     }
     
-    private TableNamesMapper createLogicalTableMapper() {
-        TableNamesMapper result = new TableNamesMapper();
-        tables.forEach(result::put);
+    private Collection<String> createBroadcastTables(final Collection<String> broadcastTables) {
+        Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+        result.addAll(broadcastTables);
         return result;
     }
     
-    private TableNamesMapper createActualTableMapper() {
+    private TableNamesMapper createTableMapper() {
         TableNamesMapper result = new TableNamesMapper();
         tables.forEach(result::put);
         return result;
     }
     
-    private Collection<String> createBroadcastTables(final Collection<String> broadcastTables) {
-        Collection<String> result = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
-        result.addAll(broadcastTables);
-        return result;
-    }
-    
-    private Map<String, Collection<DataNode>> createShardingTableDataNodes(final Collection<String> dataSourceNames) {
+    private Map<String, Collection<DataNode>> createShardingTableDataNodes(final Collection<String> dataSourceNames, final Collection<String> tables) {
         Map<String, Collection<DataNode>> result = new HashMap<>(tables.size(), 1F);
         for (String each : tables) {
             result.put(each.toLowerCase(), generateDataNodes(each, dataSourceNames));
diff --git a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastRouteEngineFactoryTest.java b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastRouteEngineFactoryTest.java
index 3424dcb49be..5dcee85a4e5 100644
--- a/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastRouteEngineFactoryTest.java
+++ b/features/broadcast/core/src/test/java/org/apache/shardingsphere/broadcast/route/BroadcastRouteEngineFactoryTest.java
@@ -22,9 +22,7 @@ import org.apache.shardingsphere.broadcast.route.engine.type.BroadcastRouteEngin
 import org.apache.shardingsphere.broadcast.route.engine.type.broadcast.BroadcastDatabaseBroadcastRoutingEngine;
 import org.apache.shardingsphere.broadcast.rule.BroadcastRule;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.session.connection.ConnectionContext;
 import org.apache.shardingsphere.infra.session.query.QueryContext;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.TCLStatement;
@@ -44,20 +42,14 @@ class BroadcastRouteEngineFactoryTest {
     
     private QueryContext queryContext;
     
-    private ConfigurationProperties props;
-    
     private ConnectionContext connectionContext;
     
-    private ShardingSphereRuleMetaData globalRuleMetaData;
-    
     @BeforeEach
     void setUp() {
         broadcastRule = mock(BroadcastRule.class);
         database = mock(ShardingSphereDatabase.class);
         queryContext = mock(QueryContext.class);
-        props = mock(ConfigurationProperties.class);
         connectionContext = mock(ConnectionContext.class);
-        globalRuleMetaData = mock(ShardingSphereRuleMetaData.class);
     }
     
     @Test
@@ -65,7 +57,7 @@ class BroadcastRouteEngineFactoryTest {
         SQLStatementContext sqlStatementContext = mock(SQLStatementContext.class);
         when(sqlStatementContext.getSqlStatement()).thenReturn(mock(TCLStatement.class));
         when(queryContext.getSqlStatementContext()).thenReturn(sqlStatementContext);
-        BroadcastRouteEngine engine = BroadcastRouteEngineFactory.newInstance(broadcastRule, database, queryContext, props, connectionContext, globalRuleMetaData);
+        BroadcastRouteEngine engine = BroadcastRouteEngineFactory.newInstance(broadcastRule, database, queryContext, connectionContext);
         assertThat(engine, instanceOf(BroadcastDatabaseBroadcastRoutingEngine.class));
     }
 }
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
index 2f8f883920b..deb2ce50a06 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/route/engine/type/ShardingRouteEngineFactory.java
@@ -100,7 +100,7 @@ public final class ShardingRouteEngineFactory {
         }
         if (sqlStatement instanceof DDLStatement) {
             if (sqlStatementContext instanceof CursorAvailable) {
-                return getCursorRouteEngine(shardingRule, database, sqlStatementContext, queryContext.getHintValueContext(), shardingConditions, props, connectionContext);
+                return getCursorRouteEngine(shardingRule, database, sqlStatementContext, queryContext.getHintValueContext(), shardingConditions, props);
             }
             return getDDLRoutingEngine(shardingRule, database, sqlStatementContext, connectionContext, globalRuleMetaData);
         }
@@ -140,8 +140,7 @@ public final class ShardingRouteEngineFactory {
     }
     
     private static ShardingRouteEngine getCursorRouteEngine(final ShardingRule shardingRule, final ShardingSphereDatabase database, final SQLStatementContext sqlStatementContext,
-                                                            final HintValueContext hintValueContext, final ShardingConditions shardingConditions, final ConfigurationProperties props,
-                                                            final ConnectionContext connectionContext) {
+                                                            final HintValueContext hintValueContext, final ShardingConditions shardingConditions, final ConfigurationProperties props) {
         if (sqlStatementContext instanceof CloseStatementContext && ((CloseStatementContext) sqlStatementContext).getSqlStatement().isCloseAll()) {
             return new ShardingDatabaseBroadcastRoutingEngine();
         }