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/05/07 04:02:48 UTC

[shardingsphere] branch master updated: Refactor SQLFederationDecideEngine (#25503)

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 5bbfbc643bb Refactor SQLFederationDecideEngine (#25503)
5bbfbc643bb is described below

commit 5bbfbc643bb597db5413394fdbf5de8e220b3fd9
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sun May 7 12:02:40 2023 +0800

    Refactor SQLFederationDecideEngine (#25503)
---
 .../decider/ShardingSQLFederationDecider.java      |  3 +--
 .../decider/ShardingSQLFederationDeciderTest.java  | 22 ++++++++++------------
 .../binder/decider/SQLFederationDecideEngine.java  | 11 ++++++-----
 .../infra/binder/decider/SQLFederationDecider.java |  6 ++----
 .../decider/SQLFederationDeciderMatchFixture.java  |  4 +---
 .../SQLFederationDeciderNotMatchFixture.java       |  4 +---
 .../single/decider/SingleSQLFederationDecider.java |  3 +--
 .../decider/SingleSQLFederationDeciderTest.java    | 12 +++++-------
 8 files changed, 27 insertions(+), 38 deletions(-)

diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
index 5bc359c5d60..cba99ad29d5 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDecider.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.binder.decider.SQLFederationDecider;
 import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContext;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-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.sharding.constant.ShardingOrder;
@@ -40,7 +39,7 @@ public final class ShardingSQLFederationDecider implements SQLFederationDecider<
     
     @Override
     public void decide(final SQLFederationDeciderContext deciderContext, final SelectStatementContext selectStatementContext, final List<Object> parameters,
-                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final ShardingRule rule, final ConfigurationProperties props) {
+                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final ShardingRule rule) {
         Collection<String> tableNames = rule.getShardingLogicTableNames(selectStatementContext.getTablesContext().getTableNames());
         if (tableNames.isEmpty()) {
             return;
diff --git a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
index 99cd0bd232f..d00b23ea06d 100644
--- a/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
+++ b/features/sharding/core/src/test/java/org/apache/shardingsphere/sharding/decider/ShardingSQLFederationDeciderTest.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.sharding.decider;
 
 import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContext;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.DefaultDatabase;
 import org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
@@ -33,7 +32,6 @@ import org.junit.jupiter.api.Test;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Optional;
-import java.util.Properties;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -53,7 +51,7 @@ class ShardingSQLFederationDeciderTest {
         when(rule.getShardingLogicTableNames(Arrays.asList("t_order", "t_order_item"))).thenReturn(Collections.emptyList());
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         federationDecider.decide(actual, select,
-                Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), mock(ShardingSphereDatabase.class), rule, new ConfigurationProperties(new Properties()));
+                Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), mock(ShardingSphereDatabase.class), rule);
         assertTrue(actual.getDataNodes().isEmpty());
         assertFalse(actual.isUseSQLFederation());
     }
@@ -64,7 +62,7 @@ class ShardingSQLFederationDeciderTest {
         when(select.isContainsSubquery()).thenReturn(true);
         SQLFederationDeciderContext deciderContext = new SQLFederationDeciderContext();
         new ShardingSQLFederationDecider().decide(deciderContext,
-                select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule(), new ConfigurationProperties(new Properties()));
+                select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule());
         assertThat(deciderContext.getDataNodes().size(), is(4));
     }
     
@@ -75,7 +73,7 @@ class ShardingSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         ShardingSQLFederationDecider federationDecider = new ShardingSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule(), new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule());
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -87,7 +85,7 @@ class ShardingSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         ShardingSQLFederationDecider federationDecider = new ShardingSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule(), new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule());
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -99,7 +97,7 @@ class ShardingSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         ShardingSQLFederationDecider federationDecider = new ShardingSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule(), new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule());
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -111,7 +109,7 @@ class ShardingSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         ShardingSQLFederationDecider federationDecider = new ShardingSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule(), new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), createShardingRule());
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -124,7 +122,7 @@ class ShardingSQLFederationDeciderTest {
         ShardingSQLFederationDecider federationDecider = new ShardingSQLFederationDecider();
         ShardingRule shardingRule = createShardingRule();
         when(shardingRule.isAllTablesInSameDataSource(Arrays.asList("t_order", "t_order_item"))).thenReturn(true);
-        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), createDatabase(), shardingRule, new ConfigurationProperties(new Properties()));
+        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), createDatabase(), shardingRule);
         assertThat(actual.getDataNodes().size(), is(4));
         assertFalse(actual.isUseSQLFederation());
     }
@@ -138,7 +136,7 @@ class ShardingSQLFederationDeciderTest {
         ShardingRule shardingRule = createShardingRule();
         ShardingSphereDatabase database = createDatabase();
         when(shardingRule.isAllBindingTables(database, select, Arrays.asList("t_order", "t_order_item"))).thenReturn(true);
-        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule, new ConfigurationProperties(new Properties()));
+        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule);
         assertThat(actual.getDataNodes().size(), is(4));
         assertFalse(actual.isUseSQLFederation());
     }
@@ -152,7 +150,7 @@ class ShardingSQLFederationDeciderTest {
         ShardingRule shardingRule = createShardingRule();
         ShardingSphereDatabase database = createDatabase();
         when(shardingRule.isAllBindingTables(database, select, Arrays.asList("t_order", "t_order_item"))).thenReturn(false);
-        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule, new ConfigurationProperties(new Properties()));
+        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule);
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -167,7 +165,7 @@ class ShardingSQLFederationDeciderTest {
         ShardingRule shardingRule = createShardingRule();
         ShardingSphereDatabase database = createDatabase();
         when(shardingRule.isAllBindingTables(database, select, Arrays.asList("t_order", "t_order_item"))).thenReturn(false);
-        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule, new ConfigurationProperties(new Properties()));
+        federationDecider.decide(actual, select, Collections.emptyList(), mock(ShardingSphereRuleMetaData.class), database, shardingRule);
         assertThat(actual.getDataNodes().size(), is(4));
         assertTrue(actual.isUseSQLFederation());
     }
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecideEngine.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecideEngine.java
index 94d97075f4a..7f954b7da1d 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecideEngine.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecideEngine.java
@@ -40,11 +40,11 @@ public final class SQLFederationDecideEngine {
     @SuppressWarnings("rawtypes")
     private final Map<ShardingSphereRule, SQLFederationDecider> deciders;
     
-    private final ConfigurationProperties props;
+    private final boolean isFederationDisabled;
     
     public SQLFederationDecideEngine(final Collection<ShardingSphereRule> rules, final ConfigurationProperties props) {
         deciders = OrderedSPILoader.getServices(SQLFederationDecider.class, rules);
-        this.props = props;
+        isFederationDisabled = "NONE".equals(props.getValue(ConfigurationPropertyKey.SQL_FEDERATION_TYPE));
     }
     
     /**
@@ -60,17 +60,18 @@ public final class SQLFederationDecideEngine {
     public SQLFederationDeciderContext decide(final SQLStatementContext<?> sqlStatementContext,
                                               final List<Object> parameters, final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database) {
         SQLFederationDeciderContext result = new SQLFederationDeciderContext();
-        // TODO move this logic to SQLFederationDecider implement class when we remove sql federation type
+        // TODO BEGIN: move this logic to SQLFederationDecider implement class when we remove sql federation type
         if (isQuerySystemSchema(sqlStatementContext, database)) {
             result.setUseSQLFederation(true);
             return result;
         }
-        if (!(sqlStatementContext instanceof SelectStatementContext) || "NONE".equals(props.getValue(ConfigurationPropertyKey.SQL_FEDERATION_TYPE))) {
+        // TODO END
+        if (isFederationDisabled || !(sqlStatementContext instanceof SelectStatementContext)) {
             return result;
         }
         for (Entry<ShardingSphereRule, SQLFederationDecider> entry : deciders.entrySet()) {
             if (!result.isUseSQLFederation()) {
-                entry.getValue().decide(result, (SelectStatementContext) sqlStatementContext, parameters, globalRuleMetaData, database, entry.getKey(), props);
+                entry.getValue().decide(result, (SelectStatementContext) sqlStatementContext, parameters, globalRuleMetaData, database, entry.getKey());
             }
         }
         return result;
diff --git a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecider.java b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecider.java
index 92faf5d9e5a..d845cbe058e 100644
--- a/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecider.java
+++ b/infra/binder/src/main/java/org/apache/shardingsphere/infra/binder/decider/SQLFederationDecider.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.infra.binder.decider;
 
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-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.rule.ShardingSphereRule;
@@ -44,8 +43,7 @@ public interface SQLFederationDecider<T extends ShardingSphereRule> extends Orde
      * @param globalRuleMetaData global rule meta data
      * @param database database
      * @param rule rule
-     * @param props props
      */
-    void decide(SQLFederationDeciderContext deciderContext, SelectStatementContext selectStatementContext, List<Object> parameters,
-                ShardingSphereRuleMetaData globalRuleMetaData, ShardingSphereDatabase database, T rule, ConfigurationProperties props);
+    void decide(SQLFederationDeciderContext deciderContext, SelectStatementContext selectStatementContext,
+                List<Object> parameters, ShardingSphereRuleMetaData globalRuleMetaData, ShardingSphereDatabase database, T rule);
 }
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderMatchFixture.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderMatchFixture.java
index db0baa3b187..69dc5970f70 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderMatchFixture.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderMatchFixture.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.binder.decider.SQLFederationDecider;
 import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContext;
 import org.apache.shardingsphere.infra.binder.decider.fixture.rule.SQLFederationDeciderRuleMatchFixture;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-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;
 
@@ -31,8 +30,7 @@ public final class SQLFederationDeciderMatchFixture implements SQLFederationDeci
     
     @Override
     public void decide(final SQLFederationDeciderContext deciderContext, final SelectStatementContext selectStatementContext, final List<Object> parameters,
-                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final SQLFederationDeciderRuleMatchFixture rule,
-                       final ConfigurationProperties props) {
+                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final SQLFederationDeciderRuleMatchFixture rule) {
         deciderContext.setUseSQLFederation(true);
     }
     
diff --git a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderNotMatchFixture.java b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderNotMatchFixture.java
index 4485b43c406..ffc6f4ce981 100644
--- a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderNotMatchFixture.java
+++ b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/decider/fixture/decider/SQLFederationDeciderNotMatchFixture.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.binder.decider.SQLFederationDecider;
 import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContext;
 import org.apache.shardingsphere.infra.binder.decider.fixture.rule.SQLFederationDeciderRuleNotMatchFixture;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-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;
 
@@ -31,8 +30,7 @@ public final class SQLFederationDeciderNotMatchFixture implements SQLFederationD
     
     @Override
     public void decide(final SQLFederationDeciderContext deciderContext, final SelectStatementContext selectStatementContext, final List<Object> parameters,
-                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database,
-                       final SQLFederationDeciderRuleNotMatchFixture rule, final ConfigurationProperties props) {
+                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final SQLFederationDeciderRuleNotMatchFixture rule) {
     }
     
     @Override
diff --git a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDecider.java b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDecider.java
index 7dfc816aff0..1a2084f31f4 100644
--- a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDecider.java
+++ b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDecider.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContex
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
 import org.apache.shardingsphere.infra.binder.type.IndexAvailable;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
 import org.apache.shardingsphere.infra.datanode.DataNode;
@@ -46,7 +45,7 @@ public final class SingleSQLFederationDecider implements SQLFederationDecider<Si
     
     @Override
     public void decide(final SQLFederationDeciderContext deciderContext, final SelectStatementContext selectStatementContext, final List<Object> parameters,
-                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final SingleRule rule, final ConfigurationProperties props) {
+                       final ShardingSphereRuleMetaData globalRuleMetaData, final ShardingSphereDatabase database, final SingleRule rule) {
         Collection<QualifiedTable> singleTableNames = getSingleTableNames(selectStatementContext, database, rule);
         if (singleTableNames.isEmpty()) {
             return;
diff --git a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDeciderTest.java b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDeciderTest.java
index 2bf0ad1d2fe..7bfaed53a26 100644
--- a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDeciderTest.java
+++ b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/decider/SingleSQLFederationDeciderTest.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.single.decider;
 
 import org.apache.shardingsphere.infra.binder.decider.SQLFederationDeciderContext;
 import org.apache.shardingsphere.infra.binder.statement.dml.SelectStatementContext;
-import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.DefaultDatabase;
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
@@ -34,7 +33,6 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Optional;
-import java.util.Properties;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -53,7 +51,7 @@ class SingleSQLFederationDeciderTest {
         SelectStatementContext select = createStatementContext();
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), mock(SingleRule.class), new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), mock(SingleRule.class));
         assertTrue(actual.getDataNodes().isEmpty());
         assertFalse(actual.isUseSQLFederation());
     }
@@ -67,7 +65,7 @@ class SingleSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         SingleSQLFederationDecider federationDecider = new SingleSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule, new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule);
         assertThat(actual.getDataNodes().size(), is(2));
         assertFalse(actual.isUseSQLFederation());
     }
@@ -81,7 +79,7 @@ class SingleSQLFederationDeciderTest {
         SQLFederationDeciderContext actual = new SQLFederationDeciderContext();
         SingleSQLFederationDecider federationDecider = new SingleSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule, new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule);
         assertThat(actual.getDataNodes().size(), is(2));
         assertTrue(actual.isUseSQLFederation());
     }
@@ -96,7 +94,7 @@ class SingleSQLFederationDeciderTest {
         actual.getDataNodes().add(new DataNode("ds_0", "t_user"));
         SingleSQLFederationDecider federationDecider = new SingleSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule, new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule);
         assertThat(actual.getDataNodes().size(), is(3));
         assertFalse(actual.isUseSQLFederation());
     }
@@ -111,7 +109,7 @@ class SingleSQLFederationDeciderTest {
         actual.getDataNodes().add(new DataNode("ds_1", "t_user"));
         SingleSQLFederationDecider federationDecider = new SingleSQLFederationDecider();
         federationDecider.decide(actual, select, Collections.emptyList(),
-                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule, new ConfigurationProperties(new Properties()));
+                mock(ShardingSphereRuleMetaData.class), createDatabase(), rule);
         assertThat(actual.getDataNodes().size(), is(3));
         assertTrue(actual.isUseSQLFederation());
     }