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 <[email protected]>
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

Reply via email to