You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/08/19 10:29:48 UTC
[shardingsphere] branch master updated: Remove mode filed on
ShardingSphereDataSource and GovernanceShardingSphereDataSource (#11902)
This is an automated email from the ASF dual-hosted git repository.
menghaoran 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 7b1c0ea Remove mode filed on ShardingSphereDataSource and GovernanceShardingSphereDataSource (#11902)
7b1c0ea is described below
commit 7b1c0eac7e1568ee081be4585e08df31726fca5e
Author: Liang Zhang <te...@163.com>
AuthorDate: Thu Aug 19 18:29:17 2021 +0800
Remove mode filed on ShardingSphereDataSource and GovernanceShardingSphereDataSource (#11902)
---
.../core/datasource/ShardingSphereDataSource.java | 15 ++++++-----
.../GovernanceShardingSphereDataSource.java | 30 +++++++++++++++-------
2 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index e5dfb51..34553dc 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -52,19 +52,22 @@ public final class ShardingSphereDataSource extends AbstractUnsupportedOperation
private final String schemaName;
- private final ShardingSphereMode mode;
-
private final ContextManager contextManager;
public ShardingSphereDataSource(final String schemaName, final ModeConfiguration modeConfig, final Map<String, DataSource> dataSourceMap,
final Collection<RuleConfiguration> ruleConfigs, final Properties props) throws SQLException {
this.schemaName = schemaName;
- mode = ModeBuilderEngine.build(modeConfig);
+ contextManager = createContextManager(schemaName, modeConfig, dataSourceMap, ruleConfigs, props);
+
+ }
+
+ private ContextManager createContextManager(final String schemaName, final ModeConfiguration modeConfig,
+ final Map<String, DataSource> dataSourceMap, final Collection<RuleConfiguration> ruleConfigs, final Properties props) throws SQLException {
+ ShardingSphereMode mode = ModeBuilderEngine.build(modeConfig);
Collection<RuleConfiguration> schemaRuleConfigs = ruleConfigs.stream().filter(each -> each instanceof SchemaRuleConfiguration).collect(Collectors.toList());
Collection<RuleConfiguration> globalRuleConfigs = ruleConfigs.stream().filter(each -> each instanceof GlobalRuleConfiguration).collect(Collectors.toList());
- contextManager = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties()).build(
- mode, Collections.singletonMap(schemaName, dataSourceMap), Collections.singletonMap(schemaName, schemaRuleConfigs), globalRuleConfigs, props, modeConfig.isOverwrite());
-
+ ContextManagerBuilder builder = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties());
+ return builder.build(mode, Collections.singletonMap(schemaName, dataSourceMap), Collections.singletonMap(schemaName, schemaRuleConfigs), globalRuleConfigs, props, modeConfig.isOverwrite());
}
@Override
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
index 35cda90..b20881e 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
@@ -54,26 +54,38 @@ public final class GovernanceShardingSphereDataSource extends AbstractUnsupporte
private final String schemaName;
- private final ShardingSphereMode mode;
-
@Getter
private final ContextManager contextManager;
public GovernanceShardingSphereDataSource(final String schemaName, final ModeConfiguration modeConfig) throws SQLException {
this.schemaName = schemaName;
- mode = ModeBuilderEngine.build(modeConfig);
- contextManager = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties()).build(
- mode, Collections.singletonMap(schemaName, new HashMap<>()), Collections.singletonMap(schemaName, Collections.emptyList()), Collections.emptyList(), new Properties(), false);
+ contextManager = createContextManager(schemaName, modeConfig);
}
public GovernanceShardingSphereDataSource(final String schemaName, final ModeConfiguration modeConfig, final Map<String, DataSource> dataSourceMap,
final Collection<RuleConfiguration> ruleConfigs, final Properties props) throws SQLException {
this.schemaName = schemaName;
- mode = ModeBuilderEngine.build(modeConfig);
- Collection<RuleConfiguration> schemaRuleConfigs = ruleConfigs.stream().filter(each -> each instanceof SchemaRuleConfiguration).collect(Collectors.toList());
+ contextManager = createContextManager(schemaName, modeConfig, dataSourceMap, ruleConfigs, props);
+ }
+
+ private ContextManager createContextManager(final String schemaName, final ModeConfiguration modeConfig) throws SQLException {
+ ShardingSphereMode mode = ModeBuilderEngine.build(modeConfig);
+ Map<String, Map<String, DataSource>> dataSourcesMap = Collections.singletonMap(schemaName, new HashMap<>());
+ Map<String, Collection<RuleConfiguration>> schemaRuleConfigs = Collections.singletonMap(schemaName, Collections.emptyList());
+ Collection<RuleConfiguration> globalRuleConfigs = Collections.emptyList();
+ ContextManagerBuilder builder = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties());
+ return builder.build(mode, dataSourcesMap, schemaRuleConfigs, globalRuleConfigs, new Properties(), false);
+ }
+
+ private ContextManager createContextManager(final String schemaName, final ModeConfiguration modeConfig, final Map<String, DataSource> dataSourceMap,
+ final Collection<RuleConfiguration> ruleConfigs, final Properties props) throws SQLException {
+ ShardingSphereMode mode = ModeBuilderEngine.build(modeConfig);
+ Map<String, Map<String, DataSource>> dataSourcesMap = Collections.singletonMap(schemaName, dataSourceMap);
+ Map<String, Collection<RuleConfiguration>> schemaRuleConfigs = Collections.singletonMap(
+ schemaName, ruleConfigs.stream().filter(each -> each instanceof SchemaRuleConfiguration).collect(Collectors.toList()));
Collection<RuleConfiguration> globalRuleConfigs = ruleConfigs.stream().filter(each -> each instanceof GlobalRuleConfiguration).collect(Collectors.toList());
- contextManager = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties()).build(
- mode, Collections.singletonMap(schemaName, dataSourceMap), Collections.singletonMap(schemaName, schemaRuleConfigs), globalRuleConfigs, props, modeConfig.isOverwrite());
+ ContextManagerBuilder builder = TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, modeConfig.getType(), new Properties());
+ return builder.build(mode, dataSourcesMap, schemaRuleConfigs, globalRuleConfigs, props, modeConfig.isOverwrite());
}
@Override