This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 f0d9905  Remove unused DataSource in ShardingRule constructor to 
simplify construction (#13320)
f0d9905 is described below

commit f0d99055b878939a32443914aec5560f1be42c8d
Author: Hongsheng Zhong <[email protected]>
AuthorDate: Thu Oct 28 00:17:16 2021 +0800

    Remove unused DataSource in ShardingRule constructor to simplify 
construction (#13320)
---
 .../shardingsphere/sharding/rule/ShardingRule.java | 13 +++----
 .../AlgorithmProvidedShardingRuleBuilder.java      |  5 ++-
 .../sharding/rule/builder/ShardingRuleBuilder.java |  5 ++-
 .../dal/show/ShowCreateTableMergedResultTest.java  |  3 +-
 .../dal/show/ShowTableStatusMergedResultTest.java  |  3 +-
 .../merge/dal/show/ShowTablesMergedResultTest.java |  3 +-
 .../metadata/ShardingTableMetaDataBuilderTest.java |  4 +-
 .../engine/fixture/AbstractRoutingEngineTest.java  | 24 ++++++------
 ...ShardingDatabaseBroadcastRoutingEngineTest.java | 15 +-------
 .../ShardingTableBroadcastRoutingEngineTest.java   |  9 +----
 .../unicast/ShardingUnicastRoutingEngineTest.java  | 16 +-------
 .../sharding/rule/ShardingRuleTest.java            | 45 +++++++++-------------
 .../ShardingSphereDatabaseMetaDataTest.java        |  2 +-
 .../job/preparer/AbstractDataSourcePreparer.java   |  4 +-
 .../scaling/core/util/JobConfigurationUtil.java    | 19 +--------
 15 files changed, 57 insertions(+), 113 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
index 8b595ef..e611cd2 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/ShardingRule.java
@@ -42,7 +42,6 @@ import 
org.apache.shardingsphere.sharding.support.InlineExpressionParser;
 import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.spi.required.RequiredSPIRegistry;
 
-import javax.sql.DataSource;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
@@ -87,9 +86,9 @@ public final class ShardingRule implements SchemaRule, 
DataNodeContainedRule, Ta
 
     private final String defaultShardingColumn;
     
-    public ShardingRule(final ShardingRuleConfiguration config, final 
Map<String, DataSource> dataSourceMap) {
-        Preconditions.checkArgument(null != dataSourceMap && 
!dataSourceMap.isEmpty(), "Data sources cannot be empty.");
-        dataSourceNames = getDataSourceNames(config.getTables(), 
config.getAutoTables(), dataSourceMap.keySet());
+    public ShardingRule(final ShardingRuleConfiguration config, final 
Collection<String> dataSourceNames) {
+        Preconditions.checkArgument(null != dataSourceNames && 
!dataSourceNames.isEmpty(), "Data source names cannot be empty.");
+        this.dataSourceNames = getDataSourceNames(config.getTables(), 
config.getAutoTables(), dataSourceNames);
         config.getShardingAlgorithms().forEach((key, value) -> 
shardingAlgorithms.put(key, 
ShardingSphereAlgorithmFactory.createAlgorithm(value, 
ShardingAlgorithm.class)));
         config.getKeyGenerators().forEach((key, value) -> 
keyGenerators.put(key, ShardingSphereAlgorithmFactory.createAlgorithm(value, 
KeyGenerateAlgorithm.class)));
         tableRules.putAll(createTableRules(config.getTables(), 
config.getDefaultKeyGenerateStrategy()));
@@ -103,9 +102,9 @@ public final class ShardingRule implements SchemaRule, 
DataNodeContainedRule, Ta
         defaultShardingColumn = config.getDefaultShardingColumn();
     }
     
-    public ShardingRule(final AlgorithmProvidedShardingRuleConfiguration 
config, final Map<String, DataSource> dataSourceMap) {
-        Preconditions.checkArgument(null != dataSourceMap && 
!dataSourceMap.isEmpty(), "Data sources cannot be empty.");
-        dataSourceNames = getDataSourceNames(config.getTables(), 
config.getAutoTables(), dataSourceMap.keySet());
+    public ShardingRule(final AlgorithmProvidedShardingRuleConfiguration 
config, final Collection<String> dataSourceNames) {
+        Preconditions.checkArgument(null != dataSourceNames && 
!dataSourceNames.isEmpty(), "Data source names cannot be empty.");
+        this.dataSourceNames = getDataSourceNames(config.getTables(), 
config.getAutoTables(), dataSourceNames);
         shardingAlgorithms.putAll(config.getShardingAlgorithms());
         keyGenerators.putAll(config.getKeyGenerators());
         tableRules.putAll(createTableRules(config.getTables(), 
config.getDefaultKeyGenerateStrategy()));
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/AlgorithmProvidedShardingRuleBuilder.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/AlgorithmProvidedShardingRuleBuilder.java
index 2a3cbf3..e3ec967 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/AlgorithmProvidedShardingRuleBuilder.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/AlgorithmProvidedShardingRuleBuilder.java
@@ -24,7 +24,9 @@ import 
org.apache.shardingsphere.sharding.algorithm.config.AlgorithmProvidedShar
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
+import javax.sql.DataSource;
 import java.util.Collection;
+import java.util.Map;
 
 /**
  * Algorithm provided sharding rule builder.
@@ -33,7 +35,8 @@ public final class AlgorithmProvidedShardingRuleBuilder 
implements SchemaRuleBui
     
     @Override
     public ShardingRule build(final SchemaRulesBuilderMaterials materials, 
final AlgorithmProvidedShardingRuleConfiguration config, final 
Collection<ShardingSphereRule> builtRules) {
-        return new ShardingRule(config, materials.getDataSourceMap());
+        Map<String, DataSource> dataSourceMap = materials.getDataSourceMap();
+        return new ShardingRule(config, null != dataSourceMap ? 
dataSourceMap.keySet() : null);
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/ShardingRuleBuilder.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/ShardingRuleBuilder.java
index 73c946c..8083f22 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/ShardingRuleBuilder.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/main/java/org/apache/shardingsphere/sharding/rule/builder/ShardingRuleBuilder.java
@@ -24,7 +24,9 @@ import 
org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
 import org.apache.shardingsphere.sharding.constant.ShardingOrder;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 
+import javax.sql.DataSource;
 import java.util.Collection;
+import java.util.Map;
 
 /**
  * Sharding rule builder.
@@ -33,7 +35,8 @@ public final class ShardingRuleBuilder implements 
SchemaRuleBuilder<ShardingRule
     
     @Override
     public ShardingRule build(final SchemaRulesBuilderMaterials materials, 
final ShardingRuleConfiguration config, final Collection<ShardingSphereRule> 
builtRules) {
-        return new ShardingRule(config, materials.getDataSourceMap());
+        Map<String, DataSource> dataSourceMap = materials.getDataSourceMap();
+        return new ShardingRule(config, null != dataSourceMap ? 
dataSourceMap.keySet() : null);
     }
     
     @Override
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java
index c428255..022e768 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowCreateTableMergedResultTest.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.sql.SQLException;
 import java.util.Collections;
 import java.util.HashMap;
@@ -55,7 +54,7 @@ public final class ShowCreateTableMergedResultTest {
         ShardingTableRuleConfiguration tableRuleConfig = new 
ShardingTableRuleConfiguration("table", "ds.table_${0..2}");
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(tableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, 
Collections.singletonMap("ds", mock(DataSource.class, RETURNS_DEEP_STUBS)));
+        return new ShardingRule(shardingRuleConfig, 
Collections.singletonList("ds"));
     }
     
     private ShardingSphereSchema buildSchema() {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTableStatusMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTableStatusMergedResultTest.java
index 11b007e..67b31a1 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTableStatusMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTableStatusMergedResultTest.java
@@ -31,7 +31,6 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.math.BigInteger;
 import java.sql.SQLException;
 import java.sql.Timestamp;
@@ -101,7 +100,7 @@ public final class ShowTableStatusMergedResultTest {
         ShardingTableRuleConfiguration tableRuleConfig = new 
ShardingTableRuleConfiguration("table", "ds.table_${0..2}");
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(tableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, 
Collections.singletonMap("ds", mock(DataSource.class, RETURNS_DEEP_STUBS)));
+        return new ShardingRule(shardingRuleConfig, 
Collections.singletonList("ds"));
     }
     
     private ShardingSphereSchema buildSchema() {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java
index 937a43f..1ad9bd5 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/merge/dal/show/ShowTablesMergedResultTest.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.sql.SQLException;
 import java.util.Collections;
 import java.util.HashMap;
@@ -55,7 +54,7 @@ public final class ShowTablesMergedResultTest {
         ShardingTableRuleConfiguration tableRuleConfig = new 
ShardingTableRuleConfiguration("table", "ds.table_${0..2}");
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(tableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, 
Collections.singletonMap("ds", mock(DataSource.class, RETURNS_DEEP_STUBS)));
+        return new ShardingRule(shardingRuleConfig, 
Collections.singletonList("ds"));
     }
     
     private ShardingSphereSchema buildSchema() {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilderTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilderTest.java
index 3830b67..5bc8818 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/metadata/ShardingTableMetaDataBuilderTest.java
@@ -104,7 +104,7 @@ public class ShardingTableMetaDataBuilderTest {
         tableRuleConfig.setKeyGenerateStrategy(new 
KeyGenerateStrategyConfiguration("product_id", "snowflake"));
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(tableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, 
Collections.singletonMap("ds", dataSource));
+        return new ShardingRule(shardingRuleConfig, 
Collections.singletonList("ds"));
     }
     
     private void mockSQLServerResultSet(final Connection connection) throws 
SQLException {
@@ -291,7 +291,7 @@ public class ShardingTableMetaDataBuilderTest {
         ShardingTableRuleConfiguration tableRuleConfig = new 
ShardingTableRuleConfiguration(TABLE_NAME, "ds.T_ORDER_${0..1}");
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(tableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, 
Collections.singletonMap("ds", dataSource));
+        return new ShardingRule(shardingRuleConfig, 
Collections.singletonList("ds"));
     }
     
     @Test
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
index f2ba58d..6d26e3f 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/fixture/AbstractRoutingEngineTest.java
@@ -36,6 +36,7 @@ import 
org.apache.shardingsphere.singletable.rule.SingleTableRule;
 
 import javax.sql.DataSource;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
@@ -57,7 +58,7 @@ public abstract class AbstractRoutingEngineTest {
         Properties props1 = new Properties();
         props1.setProperty("algorithm-expression", "t_order_${order_id % 2}");
         shardingRuleConfig.getShardingAlgorithms().put("t_order_inline", new 
ShardingSphereAlgorithmConfiguration("INLINE", props1));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createErrorShardingRule() {
@@ -69,7 +70,7 @@ public abstract class AbstractRoutingEngineTest {
         Properties props1 = new Properties();
         props1.setProperty("algorithm-expression", "t_order_${order_id % 3}");
         shardingRuleConfig.getShardingAlgorithms().put("t_order_inline", new 
ShardingSphereAlgorithmConfiguration("INLINE", props1));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createBindingShardingRule() {
@@ -86,7 +87,7 @@ public abstract class AbstractRoutingEngineTest {
         Properties props2 = new Properties();
         props2.setProperty("algorithm-expression", "t_order_item_${order_id % 
2}");
         shardingRuleConfig.getShardingAlgorithms().put("t_order_item_inline", 
new ShardingSphereAlgorithmConfiguration("INLINE", props2));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createBroadcastShardingRule() {
@@ -103,14 +104,14 @@ public abstract class AbstractRoutingEngineTest {
         Properties props2 = new Properties();
         props2.setProperty("algorithm-expression", "t_order_item_${order_id % 
2}");
         shardingRuleConfig.getShardingAlgorithms().put("t_order_item_inline", 
new ShardingSphereAlgorithmConfiguration("INLINE", props2));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createHintShardingRule() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(createTableRuleWithHintConfig());
         shardingRuleConfig.getShardingAlgorithms().put("hint_test", new 
ShardingSphereAlgorithmConfiguration("HINT_TEST", new Properties()));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createMixedShardingRule() {
@@ -126,7 +127,7 @@ public abstract class AbstractRoutingEngineTest {
         Properties props1 = new Properties();
         props1.setProperty("algorithm-expression", "t_hint_ds_test_${order_id 
% 2}");
         
shardingRuleConfig.getShardingAlgorithms().put("t_hint_ds_test_inline", new 
ShardingSphereAlgorithmConfiguration("INLINE", props1));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     protected final ShardingRule createAllShardingRule() {
@@ -151,7 +152,7 @@ public abstract class AbstractRoutingEngineTest {
         props3.setProperty("algorithm-expression", "t_user_${user_id % 2}");
         shardingRuleConfig.getShardingAlgorithms().put("t_user_inline", new 
ShardingSphereAlgorithmConfiguration("INLINE", props3));
         shardingRuleConfig.getShardingAlgorithms().put("hint_test", new 
ShardingSphereAlgorithmConfiguration("HINT_TEST", new Properties()));
-        return new ShardingRule(shardingRuleConfig, 
createDataSourceMapWithMain());
+        return new ShardingRule(shardingRuleConfig, Arrays.asList("ds_0", 
"ds_1", "main"));
     }
     
     protected final ShardingRule createIntervalTableShardingRule() {
@@ -166,7 +167,7 @@ public abstract class AbstractRoutingEngineTest {
         props0.setProperty("datetime-interval-amount", "1");
         props0.setProperty("datetime-interval-unit", "MONTHS");
         shardingRuleConfig.getShardingAlgorithms().put("interval_test", new 
ShardingSphereAlgorithmConfiguration("INTERVAL", props0));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     private ShardingTableRuleConfiguration createInlineTableRuleConfig(final 
String tableName, final String actualDataNodes, final String 
algorithmExpression, final String dsAlgorithmExpression) {
@@ -227,11 +228,8 @@ public abstract class AbstractRoutingEngineTest {
         return new ShardingConditions(result, mock(SQLStatementContext.class), 
mock(ShardingRule.class));
     }
     
-    private Map<String, DataSource> createDataSourceMap() {
-        Map<String, DataSource> result = new HashMap<>(2, 1);
-        result.put("ds_0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("ds_1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        return result;
+    private Collection<String> createDataSourceNames() {
+        return Arrays.asList("ds_0", "ds_1");
     }
     
     private Map<String, DataSource> createDataSourceMapWithMain() {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDatabaseBroadcastRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDatabaseBroadcastRoutingEngineTest.java
index a799b2f..d85f1a7 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDatabaseBroadcastRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingDatabaseBroadcastRoutingEngineTest.java
@@ -24,16 +24,12 @@ import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfi
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
 
 public final class ShardingDatabaseBroadcastRoutingEngineTest {
     
@@ -43,17 +39,10 @@ public final class 
ShardingDatabaseBroadcastRoutingEngineTest {
     public void assertRoute() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_order", "ds_${0..1}.t_order_${0..2}"));
-        RouteContext routeContext = 
shardingDatabaseBroadcastRoutingEngine.route(new 
ShardingRule(shardingRuleConfig, createDataSourceMap()));
+        RouteContext routeContext = 
shardingDatabaseBroadcastRoutingEngine.route(new 
ShardingRule(shardingRuleConfig, Arrays.asList("ds_0", "ds_1")));
         List<RouteUnit> routeUnits = new 
ArrayList<>(routeContext.getRouteUnits());
         assertThat(routeContext.getRouteUnits().size(), is(2));
         assertThat(routeUnits.get(0).getDataSourceMapper().getActualName(), 
is("ds_0"));
         assertThat(routeUnits.get(1).getDataSourceMapper().getActualName(), 
is("ds_1"));
     }
-    
-    private Map<String, DataSource> createDataSourceMap() {
-        Map<String, DataSource> result = new HashMap<>(2, 1);
-        result.put("ds_0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("ds_1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        return result;
-    }
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java
index 756d1d0..ba6e56f 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/broadcast/ShardingTableBroadcastRoutingEngineTest.java
@@ -34,12 +34,10 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Iterator;
-import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
@@ -129,10 +127,7 @@ public final class ShardingTableBroadcastRoutingEngineTest 
extends AbstractRouti
         if (isContainBroadcastTable) {
             shardingRuleConfiguration.getBroadcastTables().add("t_order");
         }
-        Map<String, DataSource> dataSourceMap = new HashMap<>(2, 1);
-        dataSourceMap.put("ds0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        dataSourceMap.put("ds1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        return new ShardingRule(shardingRuleConfiguration, dataSourceMap);
+        return new ShardingRule(shardingRuleConfiguration, 
Arrays.asList("ds_0", "ds_1"));
     }
 
     private SQLStatementContext<?> createSQLStatementContext(final 
Collection<String> tableNames) {
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngineTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngineTest.java
index f7f195e..82b171d 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngineTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/route/engine/type/unicast/ShardingUnicastRoutingEngineTest.java
@@ -25,18 +25,14 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.junit.Before;
 import org.junit.Test;
 
-import javax.sql.DataSource;
+import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
 
 public final class ShardingUnicastRoutingEngineTest {
     
@@ -47,7 +43,7 @@ public final class ShardingUnicastRoutingEngineTest {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         shardingRuleConfig.getTables().add(new 
ShardingTableRuleConfiguration("t_order", "ds_${0..1}.t_order_${0..2}"));
         shardingRuleConfig.getBroadcastTables().add("t_config");
-        shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceMap());
+        shardingRule = new ShardingRule(shardingRuleConfig, 
Arrays.asList("ds_0", "ds_1", "ds_2"));
     }
     
     @Test
@@ -98,12 +94,4 @@ public final class ShardingUnicastRoutingEngineTest {
         RouteContext routeContext = unicastRoutingEngine.route(shardingRule);
         assertThat(routeContext.getRouteUnits().size(), is(1));
     }
-    
-    private Map<String, DataSource> createDataSourceMap() {
-        Map<String, DataSource> result = new HashMap<>(3, 1);
-        result.put("ds_0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("ds_1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("ds_2", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        return result;
-    }
 }
diff --git 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
index 7a8cf91..5132d9f 100644
--- 
a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
+++ 
b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-core/src/test/java/org/apache/shardingsphere/sharding/rule/ShardingRuleTest.java
@@ -32,12 +32,10 @@ import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShard
 import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.LinkedHashSet;
-import java.util.Map;
 import java.util.Properties;
 import java.util.TreeSet;
 
@@ -47,14 +45,12 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
 
 public final class ShardingRuleTest {
     
     @Test(expected = IllegalArgumentException.class)
     public void assertNewShardingRuleWithEmptyDataSourceNames() {
-        new ShardingRule(new ShardingRuleConfiguration(), 
Collections.emptyMap());
+        new ShardingRule(new ShardingRuleConfiguration(), 
Collections.emptyList());
     }
     
     @Test
@@ -207,7 +203,7 @@ public final class ShardingRuleTest {
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithAllStrategies());
         shardingRuleConfig.setDefaultDatabaseShardingStrategy(new 
StandardShardingStrategyConfiguration("column", "STANDARD_TEST"));
         shardingRuleConfig.getShardingAlgorithms().put("standard", new 
ShardingSphereAlgorithmConfiguration("STANDARD_TEST", new Properties()));
-        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column", "LOGIC_TABLE"));
+        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column", "LOGIC_TABLE"));
     }
     
     @Test
@@ -216,7 +212,7 @@ public final class ShardingRuleTest {
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithAllStrategies());
         shardingRuleConfig.setDefaultTableShardingStrategy(new 
StandardShardingStrategyConfiguration("column", "STANDARD_TEST"));
         shardingRuleConfig.getShardingAlgorithms().put("standard", new 
ShardingSphereAlgorithmConfiguration("STANDARD_TEST", new Properties()));
-        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column", "LOGIC_TABLE"));
+        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column", "LOGIC_TABLE"));
     }
     
     @Test
@@ -224,7 +220,7 @@ public final class ShardingRuleTest {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithAllStrategies());
         shardingRuleConfig.getShardingAlgorithms().put("standard", new 
ShardingSphereAlgorithmConfiguration("STANDARD_TEST", new Properties()));
-        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column", "logic_Table"));
+        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column", "logic_Table"));
     }
     
     @Test
@@ -232,14 +228,14 @@ public final class ShardingRuleTest {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithTableStrategies());
         shardingRuleConfig.getShardingAlgorithms().put("standard", new 
ShardingSphereAlgorithmConfiguration("STANDARD_TEST", new Properties()));
-        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column", "logic_Table"));
+        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column", "logic_Table"));
     }
     
     @Test
     public void assertIsNotShardingColumn() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithAllStrategies());
-        assertFalse(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column", "other_Table"));
+        assertFalse(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column", "other_Table"));
     }
     
     @Test
@@ -283,7 +279,7 @@ public final class ShardingRuleTest {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         ShardingTableRuleConfiguration shardingTableRuleConfig = 
createTableRuleConfiguration("LOGIC_TABLE", "pr_ds_${0..1}.table_${0..2}");
         shardingRuleConfig.getTables().add(shardingTableRuleConfig);
-        new ShardingRule(shardingRuleConfig, Collections.emptyMap());
+        new ShardingRule(shardingRuleConfig, Collections.emptyList());
     }
     
     @Test
@@ -317,7 +313,7 @@ public final class ShardingRuleTest {
         Properties props = new Properties();
         props.put("sharding-count", 4);
         shardingRuleConfig.getShardingAlgorithms().put("hash_mod", new 
ShardingSphereAlgorithmConfiguration("hash_mod", props));
-        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceMap());
+        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceNames());
         assertThat(shardingRule.getDataSourceNames(), is(new 
LinkedHashSet<>(Arrays.asList("ds_0", "ds_1", "resource0", "resource1"))));
     }
     
@@ -326,7 +322,7 @@ public final class ShardingRuleTest {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         ShardingTableRuleConfiguration shardingTableRuleConfig = new 
ShardingTableRuleConfiguration("LOGIC_TABLE", "ds_${0..1}.table_${0..2}");
         shardingRuleConfig.getTables().add(shardingTableRuleConfig);
-        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceMap());
+        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceNames());
         assertThat(shardingRule.getDataSourceNames(), is(new 
LinkedHashSet<>(Arrays.asList("ds_0", "ds_1"))));
     }
     
@@ -339,15 +335,15 @@ public final class ShardingRuleTest {
         Properties props = new Properties();
         props.put("sharding-count", 4);
         shardingRuleConfig.getShardingAlgorithms().put("hash_mod", new 
ShardingSphereAlgorithmConfiguration("hash_mod", props));
-        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceMap());
+        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceNames());
         assertThat(shardingRule.getDataSourceNames(), is(new 
LinkedHashSet<>(Arrays.asList("resource0", "resource1"))));
     }
     
     @Test
     public void 
assertGetDataSourceNamesWithoutShardingTablesAndShardingAutoTables() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
-        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceMap());
-        assertThat(shardingRule.getDataSourceNames(), is(new 
LinkedHashSet<>(Arrays.asList("ds_0", "ds_1", "resource0", "resource1"))));
+        ShardingRule shardingRule = new ShardingRule(shardingRuleConfig, 
createDataSourceNames());
+        assertThat(shardingRule.getDataSourceNames(), is(Arrays.asList("ds_0", 
"ds_1", "resource0", "resource1")));
     }
     
     private ShardingRule createMaximumShardingRule() {
@@ -374,27 +370,22 @@ public final class ShardingRuleTest {
         shardingRuleConfig.getShardingAlgorithms().put("standard", new 
ShardingSphereAlgorithmConfiguration("STANDARD_TEST", new Properties()));
         shardingRuleConfig.getKeyGenerators().put("increment", new 
ShardingSphereAlgorithmConfiguration("INCREMENT", new Properties()));
         shardingRuleConfig.getKeyGenerators().put("default", new 
ShardingSphereAlgorithmConfiguration("INCREMENT", new Properties()));
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     private ShardingRule createMinimumShardingRule() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         ShardingTableRuleConfiguration shardingTableRuleConfig = 
createTableRuleConfiguration("LOGIC_TABLE", "ds_${0..1}.table_${0..2}");
         shardingRuleConfig.getTables().add(shardingTableRuleConfig);
-        return new ShardingRule(shardingRuleConfig, createDataSourceMap());
+        return new ShardingRule(shardingRuleConfig, createDataSourceNames());
     }
     
     private ShardingTableRuleConfiguration createTableRuleConfiguration(final 
String logicTableName, final String actualDataNodes) {
         return new ShardingTableRuleConfiguration(logicTableName, 
actualDataNodes);
     }
     
-    private Map<String, DataSource> createDataSourceMap() {
-        Map<String, DataSource> result = new HashMap<>(2, 1);
-        result.put("ds_0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("ds_1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("resource0", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        result.put("resource1", mock(DataSource.class, RETURNS_DEEP_STUBS));
-        return result;
+    private Collection<String> createDataSourceNames() {
+        return Arrays.asList("ds_0", "ds_1", "resource0", "resource1");
     }
     
     private ShardingTableRuleConfiguration 
createTableRuleConfigWithAllStrategies() {
@@ -414,7 +405,7 @@ public final class ShardingRuleTest {
     public void assertIsShardingColumnForComplexShardingStrategy() {
         ShardingRuleConfiguration shardingRuleConfig = new 
ShardingRuleConfiguration();
         
shardingRuleConfig.getTables().add(createTableRuleConfigWithComplexStrategies());
-        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceMap()).isShardingColumn("column1", "LOGIC_TABLE"));
+        assertTrue(new ShardingRule(shardingRuleConfig, 
createDataSourceNames()).isShardingColumn("column1", "LOGIC_TABLE"));
     }
     
     @Test
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
index 00d4899..652d07f 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/datasource/metadata/ShardingSphereDatabaseMetaDataTest.java
@@ -105,7 +105,7 @@ public final class ShardingSphereDatabaseMetaDataTest {
         ShardingRuleConfiguration ruleConfig = new ShardingRuleConfiguration();
         ShardingTableRuleConfiguration shardingTableRuleConfig = new 
ShardingTableRuleConfiguration(TABLE_NAME, DATA_SOURCE_NAME + "." + TABLE_NAME);
         
ruleConfig.setTables(Collections.singletonList(shardingTableRuleConfig));
-        return new ShardingRule(ruleConfig, 
Collections.singletonMap(DATA_SOURCE_NAME, mock(DataSource.class, 
RETURNS_DEEP_STUBS)));
+        return new ShardingRule(ruleConfig, 
Collections.singletonList(DATA_SOURCE_NAME));
     }
     
     @Test
diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/AbstractDataSourcePreparer.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/AbstractDataSourcePreparer.java
index 5c5d8de..af6a78d 100644
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/AbstractDataSourcePreparer.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/AbstractDataSourcePreparer.java
@@ -97,9 +97,7 @@ public abstract class AbstractDataSourcePreparer implements 
DataSourcePreparer {
         ShardingSphereJDBCDataSourceConfiguration source = 
(ShardingSphereJDBCDataSourceConfiguration) sourceConfig;
         ShardingRuleConfiguration ruleConfig = 
ShardingRuleConfigurationSwapper.findAndConvertShardingRuleConfiguration(source.getRootConfig().getRules());
         Map<String, DataSourceConfiguration> dataSourceConfigs = 
JobConfigurationUtil.getDataSourceConfigurations(source.getRootConfig());
-        Map<String, DataSource> dataSourceMap = 
dataSourceConfigs.entrySet().stream().collect(
-                Collectors.toMap(Entry::getKey, entry -> new 
DataSourceWrapper(null), (oldValue, currentValue) -> oldValue, 
LinkedHashMap::new));
-        ShardingRule shardingRule = new ShardingRule(ruleConfig, 
dataSourceMap);
+        ShardingRule shardingRule = new ShardingRule(ruleConfig, 
source.getRootConfig().getDataSources().keySet());
         Collection<String> logicTableNames = getLogicTableNames(ruleConfig);
         Map<String, Map<String, String>> dataSourceNameTableNamesMap = new 
HashMap<>();
         for (String each : logicTableNames) {
diff --git 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/util/JobConfigurationUtil.java
 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/util/JobConfigurationUtil.java
index 7454da0..66cfc48 100644
--- 
a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/util/JobConfigurationUtil.java
+++ 
b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/util/JobConfigurationUtil.java
@@ -27,7 +27,6 @@ import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.commons.collections4.CollectionUtils;
 import 
org.apache.shardingsphere.infra.config.datasource.DataSourceConfiguration;
-import org.apache.shardingsphere.infra.config.datasource.DataSourceConverter;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.YamlDataSourceConfigurationSwapper;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
@@ -51,7 +50,6 @@ import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardS
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
 import org.apache.shardingsphere.sharding.rule.TableRule;
 
-import javax.sql.DataSource;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -223,9 +221,7 @@ public final class JobConfigurationUtil {
         ShardingSphereJDBCDataSourceConfiguration sourceConfig = 
getSourceConfiguration(jobConfig);
         ShardingRuleConfiguration sourceRuleConfig = 
ShardingRuleConfigurationSwapper.findAndConvertShardingRuleConfiguration(sourceConfig.getRootConfig().getRules());
         Map<String, DataSourceConfiguration> sourceDataSource = 
getDataSourceConfigurations(sourceConfig.getRootConfig());
-        Map<String, DataSource> dataSourceMap = 
DataSourceConverter.getDataSourceMap(sourceDataSource);
-        Map<String, Map<String, String>> dataSourceTableNameMap = 
toDataSourceTableNameMap(new ShardingRule(sourceRuleConfig, dataSourceMap));
-        closeDataSources(dataSourceMap.values());
+        Map<String, Map<String, String>> dataSourceTableNameMap = 
toDataSourceTableNameMap(new ShardingRule(sourceRuleConfig, 
sourceConfig.getRootConfig().getDataSources().keySet()));
         Optional<ShardingRuleConfiguration> targetRuleConfig = 
getTargetRuleConfiguration(jobConfig);
         filterByShardingDataSourceTables(dataSourceTableNameMap, 
jobConfig.getHandleConfig());
         Map<String, Set<String>> shardingColumnsMap = 
getShardingColumnsMap(targetRuleConfig.orElse(sourceRuleConfig));
@@ -256,19 +252,6 @@ public final class JobConfigurationUtil {
         return result;
     }
     
-    private static void closeDataSources(final Collection<DataSource> 
dataSources) {
-        for (DataSource dataSource : dataSources) {
-            if (dataSource instanceof AutoCloseable) {
-                try {
-                    ((AutoCloseable) dataSource).close();
-                    //CHECKSTYLE:OFF
-                } catch (final Exception ignored) {
-                    //CHECKSTYLE:ON
-                }
-            }
-        }
-    }
-    
     private static Optional<ShardingRuleConfiguration> 
getTargetRuleConfiguration(final JobConfiguration jobConfig) {
         ScalingDataSourceConfiguration dataSourceConfig = 
jobConfig.getRuleConfig().getTarget().unwrap();
         if (dataSourceConfig instanceof 
ShardingSphereJDBCDataSourceConfiguration) {

Reply via email to