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 ecfbdcf  Remove useless GovernanceShardingSphereDataSource (#11923)
ecfbdcf is described below

commit ecfbdcfa9e6fb09ce239509cfb305bda066ee0d2
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Aug 20 19:11:41 2021 +0800

    Remove useless GovernanceShardingSphereDataSource (#11923)
---
 .../GovernanceShardingSphereDataSourceFactory.java |   6 +-
 ...lGovernanceShardingSphereDataSourceFactory.java |   6 +-
 .../GovernanceShardingSphereDataSource.java        | 127 ---------------------
 ...ernanceShardingSphereDataSourceFactoryTest.java |   6 +-
 ...ernanceShardingSphereDataSourceFactoryTest.java |   4 +-
 ...lGovernanceReadwriteSplittingIntegrateTest.java |   6 +-
 .../YamlGovernanceShardingIntegrateTest.java       |   4 +-
 ...hardingWithReadwriteSplittingIntegrateTest.java |   4 +-
 .../GovernanceShardingSphereDataSourceTest.java    |   3 +-
 .../ShardingSphereGovernanceAutoConfiguration.java |   6 +-
 .../type/GovernanceSpringBootEncryptTest.java      |   6 +-
 ...GovernanceSpringBootReadwriteSplittingTest.java |   6 +-
 .../GovernanceSpringBootRegistryEncryptTest.java   |   6 +-
 ...ceSpringBootRegistryReadwriteSplittingTest.java |   6 +-
 .../GovernanceSpringBootRegistryShardingTest.java  |  14 +--
 .../type/GovernanceSpringBootShardingTest.java     |  14 +--
 .../parser/DataSourceBeanDefinitionParser.java     |   4 +-
 .../governance/GovernanceEncryptNamespaceTest.java |   8 +-
 .../GovernanceReadwriteSplittingNamespaceTest.java |   8 +-
 .../GovernanceShardingNamespaceTest.java           |  12 +-
 ...nceShardingReadwriteSplittingNamespaceTest.java |   6 +-
 .../adapter/impl/ShardingSphereJDBCContainer.java  |   7 +-
 .../test/integration/engine/it/BaseITCase.java     |   9 +-
 23 files changed, 73 insertions(+), 205 deletions(-)

diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
index 4a5081d..b24642e 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactory.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.driver.governance.api;
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
@@ -47,7 +47,7 @@ public final class GovernanceShardingSphereDataSourceFactory {
      * @throws SQLException SQL exception
      */
     public static DataSource createDataSource(final String schemaName, final 
ModeConfiguration modeConfig) throws SQLException {
-        return new 
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ? 
DefaultSchema.LOGIC_NAME : schemaName, modeConfig);
+        return new ShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) 
? DefaultSchema.LOGIC_NAME : schemaName, modeConfig);
     }
     
     /**
@@ -77,7 +77,7 @@ public final class GovernanceShardingSphereDataSourceFactory {
         if (null == ruleConfigs || ruleConfigs.isEmpty()) {
             return createDataSource(schemaName, modeConfig);
         }
-        return new 
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ? 
DefaultSchema.LOGIC_NAME : schemaName, modeConfig, dataSourceMap, ruleConfigs, 
props);
+        return new ShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) 
? DefaultSchema.LOGIC_NAME : schemaName, modeConfig, dataSourceMap, 
ruleConfigs, props);
     }
     
     /**
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactory.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactory.java
index 48a8c03..8768d4d 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactory.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactory.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.driver.governance.api.yaml;
 import com.google.common.base.Strings;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
@@ -111,13 +111,13 @@ public final class 
YamlGovernanceShardingSphereDataSourceFactory {
     
     private static DataSource createDataSourceWithoutRules(final String 
schemaName, final YamlModeConfiguration yamlModeConfig) throws SQLException {
         ModeConfiguration modeConfig = getModeConfiguration(yamlModeConfig);
-        return new 
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ? 
DefaultSchema.LOGIC_NAME : schemaName, modeConfig);
+        return new ShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) 
? DefaultSchema.LOGIC_NAME : schemaName, modeConfig);
     }
     
     private static DataSource createDataSourceWithRules(final String 
schemaName, final YamlModeConfiguration yamlModeConfig, final Map<String, 
DataSource> dataSourceMap, 
                                                         final 
Collection<RuleConfiguration> ruleConfigs, final Properties props) throws 
SQLException {
         ModeConfiguration modeConfig = getModeConfiguration(yamlModeConfig);
-        return new 
GovernanceShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) ? 
DefaultSchema.LOGIC_NAME : schemaName, modeConfig, dataSourceMap, ruleConfigs, 
props);
+        return new ShardingSphereDataSource(Strings.isNullOrEmpty(schemaName) 
? DefaultSchema.LOGIC_NAME : schemaName, modeConfig, dataSourceMap, 
ruleConfigs, props);
     }
     
     private static ModeConfiguration getModeConfiguration(final 
YamlModeConfiguration yamlModeConfig) {
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
deleted file mode 100644
index ec60058..0000000
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/main/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSource.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.driver.governance.internal.datasource;
-
-import lombok.Getter;
-import org.apache.shardingsphere.driver.state.DriverStateContext;
-import 
org.apache.shardingsphere.driver.jdbc.unsupported.AbstractUnsupportedOperationDataSource;
-import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import org.apache.shardingsphere.infra.config.scope.GlobalRuleConfiguration;
-import org.apache.shardingsphere.infra.config.scope.SchemaRuleConfiguration;
-import org.apache.shardingsphere.infra.context.manager.ContextManager;
-import org.apache.shardingsphere.infra.context.manager.ContextManagerBuilder;
-import org.apache.shardingsphere.infra.mode.ShardingSphereMode;
-import org.apache.shardingsphere.infra.mode.builder.ModeBuilderEngine;
-import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
-import org.apache.shardingsphere.transaction.core.TransactionTypeHolder;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.stream.Collectors;
-
-/**
- * Governance ShardingSphere data source.
- */
-public final class GovernanceShardingSphereDataSource extends 
AbstractUnsupportedOperationDataSource implements AutoCloseable {
-    
-    static {
-        ShardingSphereServiceLoader.register(ContextManagerBuilder.class);
-    }
-    
-    private final String schemaName;
-    
-    @Getter
-    private final ContextManager contextManager;
-    
-    public GovernanceShardingSphereDataSource(final String schemaName, final 
ModeConfiguration modeConfig) throws SQLException {
-        this.schemaName = schemaName;
-        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;
-        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());
-        ContextManagerBuilder builder = 
TypedSPIRegistry.getRegisteredService(ContextManagerBuilder.class, 
modeConfig.getType(), new Properties());
-        return builder.build(mode, dataSourcesMap, schemaRuleConfigs, 
globalRuleConfigs, props, modeConfig.isOverwrite());
-    }
-    
-    @Override
-    public Connection getConnection() {
-        return DriverStateContext.getConnection(schemaName, 
getDataSourceMap(), contextManager, TransactionTypeHolder.get());
-    }
-    
-    @Override
-    public Connection getConnection(final String username, final String 
password) {
-        return getConnection();
-    }
-    
-    private Map<String, DataSource> getDataSourceMap() {
-        return 
contextManager.getMetaDataContexts().getMetaData(schemaName).getResource().getDataSources();
-    }
-    
-    /**
-     * Close data sources.
-     *
-     * @param dataSourceNames data source names to be closed
-     * @throws Exception exception
-     */
-    public void close(final Collection<String> dataSourceNames) throws 
Exception {
-        for (String each : dataSourceNames) {
-            close(getDataSourceMap().get(each));
-        }
-        contextManager.close();
-    }
-    
-    private void close(final DataSource dataSource) throws Exception {
-        if (dataSource instanceof AutoCloseable) {
-            ((AutoCloseable) dataSource).close();
-        }
-    }
-    
-    @Override
-    public void close() throws Exception {
-        close(getDataSourceMap().keySet());
-    }
-}
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactoryTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactoryTest.java
index 0e646b6..50bce33 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactoryTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/GovernanceShardingSphereDataSourceFactoryTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.driver.governance.api;
 
 import 
org.apache.shardingsphere.driver.governance.fixture.TestRuleConfiguration;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
 import org.junit.Test;
@@ -46,14 +46,14 @@ public final class 
GovernanceShardingSphereDataSourceFactoryTest {
     public void assertCreateDataSourceWhenRuleConfigurationsNotEmpty() throws 
SQLException {
         DataSource dataSource = 
GovernanceShardingSphereDataSourceFactory.createDataSource(
                 createModeConfiguration(), createDataSourceMap(), 
Collections.singletonList(new TestRuleConfiguration()), new Properties());
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
     }
     
     @Test
     public void assertCreateDataSourceWithGivenDataSource() throws 
SQLException {
         DataSource dataSource = 
GovernanceShardingSphereDataSourceFactory.createDataSource(
                 createModeConfiguration(), createDataSource(), 
Collections.singletonList(new TestRuleConfiguration()), new Properties());
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
     }
     
     private ModeConfiguration createModeConfiguration() {
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactoryTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactoryTest.java
index 6a0152a..f37493e 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactoryTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/YamlGovernanceShardingSphereDataSourceFactoryTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.driver.governance.api.yaml;
 
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.exception.ShardingSphereException;
 import org.junit.AfterClass;
 import org.junit.Test;
@@ -80,6 +80,6 @@ public final class 
YamlGovernanceShardingSphereDataSourceFactoryTest extends Abs
     
     @AfterClass
     public static void close() throws Exception {
-        ((GovernanceShardingSphereDataSource) dataSource).close();
+        ((ShardingSphereDataSource) dataSource).close();
     }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/readwrite/YamlGovernanceReadwriteSplittingIntegrateTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/readwrite/YamlGovernanceReadwriteSplittingIntegrateTest.java
index 67332f4..6ff435f 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/readwrite/YamlGovernanceReadwriteSplittingIntegrateTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/readwrite/YamlGovernanceReadwriteSplittingIntegrateTest.java
@@ -22,7 +22,7 @@ import com.google.common.collect.Sets;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.AbstractYamlDataSourceTest;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.YamlGovernanceShardingSphereDataSourceFactory;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -69,7 +69,7 @@ public final class 
YamlGovernanceReadwriteSplittingIntegrateTest extends Abstrac
             statement.executeQuery("SELECT * FROM t_order_item");
             statement.executeQuery("SELECT * FROM t_config");
         }
-        ((GovernanceShardingSphereDataSource) dataSource).close();
+        ((ShardingSphereDataSource) dataSource).close();
     }
     
     @Test
@@ -88,6 +88,6 @@ public final class 
YamlGovernanceReadwriteSplittingIntegrateTest extends Abstrac
             statement.executeQuery("SELECT * FROM t_order_item");
             statement.executeQuery("SELECT * FROM t_config");
         }
-        ((GovernanceShardingSphereDataSource) dataSource).close();
+        ((ShardingSphereDataSource) dataSource).close();
     }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingIntegrateTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingIntegrateTest.java
index a2907e3..c6acb50 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingIntegrateTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingIntegrateTest.java
@@ -22,7 +22,7 @@ import com.google.common.collect.Sets;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.AbstractYamlDataSourceTest;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.YamlGovernanceShardingSphereDataSourceFactory;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -69,6 +69,6 @@ public class YamlGovernanceShardingIntegrateTest extends 
AbstractYamlDataSourceT
             statement.executeQuery("SELECT * FROM t_order_item");
             statement.executeQuery("SELECT * FROM config");
         }
-        ((GovernanceShardingSphereDataSource) dataSource).close();
+        ((ShardingSphereDataSource) dataSource).close();
     }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingWithReadwriteSplittingIntegrateTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingWithReadwriteSplittingIntegrateTest.java
index bd4b132..8467538 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingWithReadwriteSplittingIntegrateTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/api/yaml/sharding/YamlGovernanceShardingWithReadwriteSplittingIntegrateTest.java
@@ -22,7 +22,7 @@ import com.google.common.collect.Sets;
 import lombok.RequiredArgsConstructor;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.AbstractYamlDataSourceTest;
 import 
org.apache.shardingsphere.driver.governance.api.yaml.YamlGovernanceShardingSphereDataSourceFactory;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -77,6 +77,6 @@ public final class 
YamlGovernanceShardingWithReadwriteSplittingIntegrateTest ext
             statement.executeQuery("SELECT * FROM t_order_item");
             statement.executeQuery("SELECT * FROM config");
         }
-        ((GovernanceShardingSphereDataSource) dataSource).close();
+        ((ShardingSphereDataSource) dataSource).close();
     }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
index eeed658..fe51775 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-governance/src/test/java/org/apache/shardingsphere/driver/governance/internal/datasource/GovernanceShardingSphereDataSourceTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.driver.governance.internal.datasource;
 
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
@@ -33,7 +34,7 @@ public final class GovernanceShardingSphereDataSourceTest {
     
     @Test
     public void assertInitializeGovernanceShardingSphereDataSource() throws 
SQLException {
-        assertThat(new 
GovernanceShardingSphereDataSource(DefaultSchema.LOGIC_NAME, 
createModeConfiguration()).getConnection(), instanceOf(Connection.class));
+        assertThat(new ShardingSphereDataSource(DefaultSchema.LOGIC_NAME, 
createModeConfiguration()).getConnection(), instanceOf(Connection.class));
     }
     
     private static ModeConfiguration createModeConfiguration() {
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/main/java/org/apache/shardingsphere/spring/boot/governance/ShardingSphereGovernanceAutoConfiguration.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/main/java/org/apache/shardingsphere/spring/boot/governance/ShardingSphereGovernanceAutoConfi
 [...]
index 379136c..6b298b3 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/main/java/org/apache/shardingsphere/spring/boot/governance/ShardingSphereGovernanceAutoConfiguration.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/main/java/org/apache/shardingsphere/spring/boot/governance/ShardingSphereGovernanceAutoConfiguration.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.spring.boot.governance;
 
 import com.google.common.base.Preconditions;
 import lombok.RequiredArgsConstructor;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
 import 
org.apache.shardingsphere.infra.yaml.config.swapper.mode.ModeConfigurationYamlSwapper;
@@ -113,10 +113,10 @@ public class ShardingSphereGovernanceAutoConfiguration 
implements EnvironmentAwa
     }
     
     private DataSource createDataSource(final ModeConfiguration modeConfig, 
final List<RuleConfiguration> ruleConfigs) throws SQLException {
-        return new GovernanceShardingSphereDataSource(schemaName, modeConfig, 
dataSourceMap, ruleConfigs, root.getProps());
+        return new ShardingSphereDataSource(schemaName, modeConfig, 
dataSourceMap, ruleConfigs, root.getProps());
     }
     
     private DataSource createDataSource(final ModeConfiguration modeConfig) 
throws SQLException {
-        return new GovernanceShardingSphereDataSource(schemaName, modeConfig);
+        return new ShardingSphereDataSource(schemaName, modeConfig);
     }
 }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootEncryptTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootEncryptTest.java
index ab55759..56f3ea9 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootEncryptTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootEncryptTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.spring.boot.governance.type;
 
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
@@ -56,8 +56,8 @@ public class GovernanceSpringBootEncryptTest {
     
     @Test
     public void assertWithEncryptDataSource() throws NoSuchFieldException, 
IllegalAccessException {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        Field field = 
GovernanceShardingSphereDataSource.class.getDeclaredField("contextManager");
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        Field field = 
ShardingSphereDataSource.class.getDeclaredField("contextManager");
         field.setAccessible(true);
         ContextManager contextManager = (ContextManager) field.get(dataSource);
         BasicDataSource embedDataSource = (BasicDataSource) 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values().iterator().next();
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootReadwriteSplittingTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRe
 [...]
index e98bb65..c537642 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootReadwriteSplittingTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootReadwriteSplittingTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.spring.boot.governance.type;
 
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import 
org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingDataSourceRule;
@@ -57,8 +57,8 @@ public class GovernanceSpringBootReadwriteSplittingTest {
     
     @Test
     public void assertDataSource() throws NoSuchFieldException, 
IllegalAccessException {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        Field field = 
GovernanceShardingSphereDataSource.class.getDeclaredField("contextManager");
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        Field field = 
ShardingSphereDataSource.class.getDeclaredField("contextManager");
         field.setAccessible(true);
         ContextManager contextManager = (ContextManager) field.get(dataSource);
         for (DataSource each : 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values())
 {
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryEncryptTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegis
 [...]
index 1b6fe04..cf4bf74 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryEncryptTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryEncryptTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.spring.boot.governance.type;
 
 import lombok.SneakyThrows;
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
 import 
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import 
org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository;
@@ -79,8 +79,8 @@ public class GovernanceSpringBootRegistryEncryptTest {
     
     @Test
     public void assertWithEncryptDataSource() throws NoSuchFieldException, 
IllegalAccessException {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        Field field = 
GovernanceShardingSphereDataSource.class.getDeclaredField("contextManager");
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        Field field = 
ShardingSphereDataSource.class.getDeclaredField("contextManager");
         field.setAccessible(true);
         ContextManager contextManager = (ContextManager) field.get(dataSource);
         BasicDataSource embedDataSource = (BasicDataSource) 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values().iterator().next();
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryReadwriteSplittingTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpri
 [...]
index 036d4e2..13d90fb 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryReadwriteSplittingTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryReadwriteSplittingTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.spring.boot.governance.type;
 
 import lombok.SneakyThrows;
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import 
org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
@@ -73,8 +73,8 @@ public class 
GovernanceSpringBootRegistryReadwriteSplittingTest {
     
     @Test
     public void assertWithReadwriteSplittingDataSource() throws 
NoSuchFieldException, IllegalAccessException {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        Field field = 
GovernanceShardingSphereDataSource.class.getDeclaredField("contextManager");
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        Field field = 
ShardingSphereDataSource.class.getDeclaredField("contextManager");
         field.setAccessible(true);
         ContextManager contextManager = (ContextManager) field.get(dataSource);
         for (DataSource each : 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values())
 {
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryShardingTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegi
 [...]
index e6243c1..afc2dbd 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryShardingTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootRegistryShardingTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.spring.boot.governance.type;
 
 import lombok.SneakyThrows;
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.governance.repository.api.config.RegistryCenterConfiguration;
 import 
org.apache.shardingsphere.governance.repository.zookeeper.CuratorZookeeperRepository;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
@@ -81,8 +81,8 @@ public class GovernanceSpringBootRegistryShardingTest {
     
     @Test
     public void assertWithShardingSphereDataSource() {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         for (DataSource each : 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values())
 {
             assertThat(((BasicDataSource) each).getMaxTotal(), is(16));
         }
@@ -92,7 +92,7 @@ public class GovernanceSpringBootRegistryShardingTest {
     
     @Test
     public void assertWithShardingSphereDataSourceNames() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getDataSourceNames().size(), is(2));
@@ -102,7 +102,7 @@ public class GovernanceSpringBootRegistryShardingTest {
     
     @Test
     public void assertWithTableRules() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getTableRules().size(), is(2));
@@ -128,7 +128,7 @@ public class GovernanceSpringBootRegistryShardingTest {
     
     @Test
     public void assertWithBindingTableRules() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getBindingTableRules().size(), is(2));
@@ -154,7 +154,7 @@ public class GovernanceSpringBootRegistryShardingTest {
     
     @Test
     public void assertWithBroadcastTables() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getBroadcastTables().size(), is(1));
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootShardingTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootShardingTest.java
index 850650b..160a9dc 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootShardingTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/governance/type/GovernanceSpringBootShardingTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.spring.boot.governance.type;
 
 import lombok.SneakyThrows;
 import org.apache.commons.dbcp2.BasicDataSource;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
@@ -61,8 +61,8 @@ public class GovernanceSpringBootShardingTest {
     
     @Test
     public void assertWithShardingSphereDataSource() {
-        assertTrue(dataSource instanceof GovernanceShardingSphereDataSource);
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        assertTrue(dataSource instanceof ShardingSphereDataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         for (DataSource each : 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources().values())
 {
             assertThat(((BasicDataSource) each).getMaxTotal(), is(16));
         }
@@ -73,7 +73,7 @@ public class GovernanceSpringBootShardingTest {
     
     @Test
     public void assertWithShardingSphereDataSourceNames() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getDataSourceNames().size(), is(2));
@@ -83,7 +83,7 @@ public class GovernanceSpringBootShardingTest {
     
     @Test
     public void assertWithTableRules() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getTableRules().size(), is(2));
@@ -110,7 +110,7 @@ public class GovernanceSpringBootShardingTest {
     
     @Test
     public void assertWithBindingTableRules() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getBindingTableRules().size(), is(2));
@@ -136,7 +136,7 @@ public class GovernanceSpringBootShardingTest {
     
     @Test
     public void assertWithBroadcastTables() {
-        ContextManager contextManager = getFieldValue("contextManager", 
GovernanceShardingSphereDataSource.class, dataSource);
+        ContextManager contextManager = getFieldValue("contextManager", 
ShardingSphereDataSource.class, dataSource);
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
         assertThat(shardingRule.getBroadcastTables().size(), is(1));
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/governance/parser/DataSourceBeanDefinitionParser.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/governance/parser/DataSourceBeanDefinitionPa
 [...]
index f5ef508..2b1244e 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/governance/parser/DataSourceBeanDefinitionParser.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/main/java/org/apache/shardingsphere/spring/namespace/governance/parser/DataSourceBeanDefinitionParser.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.spring.namespace.governance.parser;
 
 import com.google.common.base.Splitter;
 import com.google.common.base.Strings;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
 import 
org.apache.shardingsphere.spring.namespace.governance.constants.DataSourceBeanDefinitionTag;
 import org.springframework.beans.factory.config.BeanDefinition;
@@ -45,7 +45,7 @@ public final class DataSourceBeanDefinitionParser extends 
AbstractBeanDefinition
     
     @Override
     protected AbstractBeanDefinition parseInternal(final Element element, 
final ParserContext parserContext) {
-        BeanDefinitionBuilder factory = 
BeanDefinitionBuilder.rootBeanDefinition(GovernanceShardingSphereDataSource.class);
+        BeanDefinitionBuilder factory = 
BeanDefinitionBuilder.rootBeanDefinition(ShardingSphereDataSource.class);
         configureFactory(element, parserContext, factory);
         return factory.getBeanDefinition();
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
index a39e5f2..27ae30b 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceEncryptNamespaceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.spring.namespace.governance;
 
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.encrypt.algorithm.config.AlgorithmProvidedEncryptRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptColumnRuleConfiguration;
 import 
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
@@ -51,12 +51,12 @@ public final class GovernanceEncryptNamespaceTest extends 
AbstractJUnit4SpringCo
     
     @Test
     public void assertEncryptDataSourceType() {
-        
assertNotNull(applicationContext.getBean("encryptDataSourceGovernance", 
GovernanceShardingSphereDataSource.class));
+        
assertNotNull(applicationContext.getBean("encryptDataSourceGovernance", 
ShardingSphereDataSource.class));
         assertEncryptRule(getEncryptRuleConfiguration());
     }
     
     private AlgorithmProvidedEncryptRuleConfiguration 
getEncryptRuleConfiguration() {
-        GovernanceShardingSphereDataSource governanceDataSource = 
(GovernanceShardingSphereDataSource) 
applicationContext.getBean("encryptDataSourceGovernance");
+        ShardingSphereDataSource governanceDataSource = 
(ShardingSphereDataSource) 
applicationContext.getBean("encryptDataSourceGovernance");
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(governanceDataSource, "contextManager");
         return (AlgorithmProvidedEncryptRuleConfiguration) 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getConfigurations().iterator().next();
     }
@@ -84,7 +84,7 @@ public final class GovernanceEncryptNamespaceTest extends 
AbstractJUnit4SpringCo
     }
     
     private ConfigurationProperties getProperties(final String 
encryptDatasourceName) {
-        GovernanceShardingSphereDataSource governanceDataSource = 
applicationContext.getBean(encryptDatasourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource governanceDataSource = 
applicationContext.getBean(encryptDatasourceName, 
ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(governanceDataSource, "contextManager");
         return contextManager.getMetaDataContexts().getProps();
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceReadwriteSplittingNamespaceTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceReadwriteSplittingN
 [...]
index 2560b01..660db36 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceReadwriteSplittingNamespaceTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceReadwriteSplittingNamespaceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.spring.namespace.governance;
 
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
@@ -52,7 +52,7 @@ public class GovernanceReadwriteSplittingNamespaceTest 
extends AbstractJUnit4Spr
     
     @Test
     public void assertReadwriteSplittingDataSourceType() {
-        
assertNotNull(applicationContext.getBean("defaultGovernanceDataSource", 
GovernanceShardingSphereDataSource.class));
+        
assertNotNull(applicationContext.getBean("defaultGovernanceDataSource", 
ShardingSphereDataSource.class));
     }
     
     @Test
@@ -93,7 +93,7 @@ public class GovernanceReadwriteSplittingNamespaceTest 
extends AbstractJUnit4Spr
     }
     
     private Optional<ReadwriteSplittingRule> getReadwriteSplittingRule(final 
String dataSourceName) {
-        GovernanceShardingSphereDataSource dataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource dataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(dataSource, "contextManager");
         return 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().stream().filter(each
             -> each instanceof ReadwriteSplittingRule).map(each -> 
(ReadwriteSplittingRule) each).findFirst();
@@ -106,7 +106,7 @@ public class GovernanceReadwriteSplittingNamespaceTest 
extends AbstractJUnit4Spr
     }
     
     private ConfigurationProperties getProperties(final String dataSourceName) 
{
-        GovernanceShardingSphereDataSource dataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource dataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(dataSource, "contextManager");
         return contextManager.getMetaDataContexts().getProps();
     }
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingNamespaceTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingNamespaceTest.java
index c99502f..20b64dc 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingNamespaceTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingNamespaceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.spring.namespace.governance;
 
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
@@ -138,7 +138,7 @@ public class GovernanceShardingNamespaceTest extends 
AbstractJUnit4SpringContext
     
     @Test
     public void assertPropsDataSource() {
-        GovernanceShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean("propsDataSourceGovernance", 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean("propsDataSourceGovernance", 
ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(shardingSphereDataSource, "contextManager");
         
assertTrue(contextManager.getMetaDataContexts().getProps().<Boolean>getValue(ConfigurationPropertyKey.SQL_SHOW));
         boolean showSql = 
contextManager.getMetaDataContexts().getProps().getValue(ConfigurationPropertyKey.SQL_SHOW);
@@ -149,12 +149,12 @@ public class GovernanceShardingNamespaceTest extends 
AbstractJUnit4SpringContext
     
     @Test
     public void assertShardingSphereDataSourceType() {
-        assertTrue(applicationContext.getBean("simpleShardingGovernance") 
instanceof GovernanceShardingSphereDataSource);
+        assertTrue(applicationContext.getBean("simpleShardingGovernance") 
instanceof ShardingSphereDataSource);
     }
     
     @Test
     public void assertDefaultActualDataNodes() {
-        GovernanceShardingSphereDataSource multiTableRulesDataSource = 
applicationContext.getBean("multiTableRulesDataSourceGovernance", 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource multiTableRulesDataSource = 
applicationContext.getBean("multiTableRulesDataSourceGovernance", 
ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(multiTableRulesDataSource, "contextManager");
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         ShardingRule shardingRule = (ShardingRule) iterator.next();
@@ -171,13 +171,13 @@ public class GovernanceShardingNamespaceTest extends 
AbstractJUnit4SpringContext
     }
     
     private Map<String, DataSource> getDataSourceMap(final String 
dataSourceName) {
-        GovernanceShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(shardingSphereDataSource, "contextManager");
         return 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources();
     }
     
     private ShardingRule getShardingRule(final String dataSourceName) {
-        GovernanceShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(shardingSphereDataSource, "contextManager");
         Iterator<ShardingSphereRule> iterator = 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().iterator();
         return (ShardingRule) iterator.next();
diff --git 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingReadwriteSplittingNamespaceTest.java
 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingRea
 [...]
index 0f2e232..a14151a 100644
--- 
a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingReadwriteSplittingNamespaceTest.java
+++ 
b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-governance-spring/shardingsphere-jdbc-governance-spring-namespace/src/test/java/org/apache/shardingsphere/spring/namespace/governance/GovernanceShardingReadwriteSplittingNamespaceTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.spring.namespace.governance;
 
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.context.manager.ContextManager;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -61,13 +61,13 @@ public class 
GovernanceShardingReadwriteSplittingNamespaceTest extends AbstractJ
     }
     
     private Map<String, DataSource> getDataSourceMap(final String 
dataSourceName) {
-        GovernanceShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(shardingSphereDataSource, "contextManager");
         return 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDataSources();
     }
     
     private Optional<ShardingRule> getShardingRule(final String 
dataSourceName) {
-        GovernanceShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, 
GovernanceShardingSphereDataSource.class);
+        ShardingSphereDataSource shardingSphereDataSource = 
applicationContext.getBean(dataSourceName, ShardingSphereDataSource.class);
         ContextManager contextManager = (ContextManager) 
FieldValueUtil.getFieldValue(shardingSphereDataSource, "contextManager");
         return 
contextManager.getMetaDataContexts().getMetaData(DefaultSchema.LOGIC_NAME).getRuleMetaData().getRules().stream().filter(
             each -> each instanceof ShardingRule).map(each -> (ShardingRule) 
each).findFirst();
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
index 39762e2..a3cec70 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-fixture/src/test/java/org/apache/shardingsphere/test/integration/junit/container/adapter/impl/ShardingSphereJDBCContainer.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.test.integration.junit.container.adapter.impl;
 
 import com.google.common.base.Strings;
 import 
org.apache.shardingsphere.driver.api.yaml.YamlShardingSphereDataSourceFactory;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
+import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.mode.config.ModeConfiguration;
 import org.apache.shardingsphere.infra.yaml.config.pojo.YamlRootConfiguration;
@@ -96,11 +96,10 @@ public final class ShardingSphereJDBCContainer extends 
ShardingSphereAdapterCont
             
yamlModeConfig.getRepository().getProps().setProperty("serverLists", 
serverLists);
             ModeConfiguration modeConfig = new 
ModeConfigurationYamlSwapper().swapToObject(rootConfig.getMode());
             if (rootConfig.getRules().isEmpty() || dataSourceMap.isEmpty()) {
-                return new GovernanceShardingSphereDataSource(schemaName, 
modeConfig);
+                return new ShardingSphereDataSource(schemaName, modeConfig);
             } else {
                 Properties properties = rootConfig.getProps();
-                return new GovernanceShardingSphereDataSource(
-                        schemaName, modeConfig, dataSourceMap, new 
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rootConfig.getRules()),
 properties);
+                return new ShardingSphereDataSource(schemaName, modeConfig, 
dataSourceMap, new 
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rootConfig.getRules()),
 properties);
             }
         } catch (final SQLException | IOException ex) {
             throw new RuntimeException(ex);
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
index c6fd8e0..e9ad268 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/BaseITCase.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.test.integration.engine.it;
 
 import lombok.AccessLevel;
 import lombok.Getter;
-import 
org.apache.shardingsphere.driver.governance.internal.datasource.GovernanceShardingSphereDataSource;
 import 
org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.test.integration.cases.SQLCommandType;
@@ -84,12 +83,8 @@ public abstract class BaseITCase {
     }
     
     @After
-    public final void tearDown() {
-        if (targetDataSource instanceof ShardingSphereDataSource) {
-            ((ShardingSphereDataSource) 
targetDataSource).getContextManager().getMetaDataContexts().getExecutorEngine().close();
-        } else if (targetDataSource instanceof 
GovernanceShardingSphereDataSource) {
-            ((GovernanceShardingSphereDataSource) 
targetDataSource).getContextManager().getMetaDataContexts().getExecutorEngine().close();
-        }
+    public final void tearDown() throws Exception {
+        ((ShardingSphereDataSource) 
targetDataSource).getContextManager().close();
     }
     
     protected abstract String getSQL() throws ParseException;

Reply via email to