You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/10/27 16:19:22 UTC
[shardingsphere] branch master updated: Remove unused DataSource in
ShardingRule constructor to simplify construction (#13320)
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 <sa...@126.com>
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) {