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 5cf2e599e62 Decouple database types and modules as pluggable (#35345)
5cf2e599e62 is described below

commit 5cf2e599e62a8ad3b3fdcf51238d7f0d1d6dca49
Author: Liang Zhang <[email protected]>
AuthorDate: Fri May 9 14:44:29 2025 +0800

    Decouple database types and modules as pluggable (#35345)
    
    * Optimize code structure and improve return type handling
    
    - Remove void methods and replace with returning Collection
    - Wrap naked return with Collections.emptyList()
    - Extract method to collect table statistics
    - Improve code readability and maintainability
    
    * Update dependencies and move to test scope
    
    - Update shardingsphere-infra-database-mysql dependency in multiple pom 
files
    - Move several database-related dependencies to test scope
    - Add new database-related dependencies in test scope across various modules
    
    * Update dependencies and move to test scope
    
    - Update shardingsphere-infra-database-mysql dependency in multiple pom 
files
    - Move several database-related dependencies to test scope
    - Add new database-related dependencies in test scope across various modules
    
    * Update dependencies and move to test scope
    
    - Update shardingsphere-infra-database dependency in multiple pom files
    - Move several database-related dependencies to test scope
    - Add new database-related dependencies in test scope across various modules
    
    * Update dependencies and move to test scope
    
    - Update shardingsphere-infra-database dependency in multiple pom files
    - Move several database-related dependencies to test scope
    - Add new database-related dependencies in test scope across various modules
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
    
    * Decouple database types and modules as pluggable
---
 db-protocol/core/pom.xml                           |  7 +++
 db-protocol/mysql/pom.xml                          |  6 +++
 infra/common/pom.xml                               | 50 +++++++---------------
 .../rdl/resource/AlterStorageUnitExecutorTest.java |  4 +-
 .../resource/RegisterStorageUnitExecutorTest.java  |  4 +-
 .../rql/resource/ShowStorageUnitExecutorTest.java  |  6 +--
 infra/executor/pom.xml                             | 13 ++++++
 .../parser/cache/SQLStatementCacheBuilderTest.java |  2 +-
 .../parser/cache/SQLStatementCacheLoaderTest.java  |  2 +-
 .../sql/SQLStatementParserEngineFactoryTest.java   |  2 +-
 .../infra/rewrite/SQLRewriteEntryTest.java         | 14 +++---
 .../generic/SubstitutableColumnNameTokenTest.java  | 28 +++++-------
 jdbc/pom.xml                                       | 46 ++++++++++++++++++++
 kernel/global-clock/core/pom.xml                   |  7 +++
 .../single/route/SingleSQLRouterTest.java          |  2 +-
 .../route/engine/engine/SingleRouteEngineTest.java |  2 +-
 .../shardingsphere/single/rule/SingleRuleTest.java |  2 +-
 kernel/sql-federation/core/pom.xml                 |  7 +++
 kernel/sql-federation/executor/pom.xml             |  7 +++
 .../parser/rule/SQLParserRuleTest.java             |  2 +-
 kernel/sql-translator/core/pom.xml                 | 13 ++++++
 kernel/time-service/type/database/pom.xml          | 31 ++++++++++++++
 kernel/transaction/core/pom.xml                    | 19 ++++++++
 kernel/transaction/type/base/seata-at/pom.xml      |  7 +++
 kernel/transaction/type/xa/core/pom.xml            | 49 +++++++++++++++++++++
 .../resources/yaml/persist/data-source-foo.yaml    |  4 +-
 .../test/resources/yaml/persist/data-source.yaml   |  4 +-
 .../core/src/test/resources/yaml/data-source.yaml  |  2 +-
 parser/distsql/statement/pom.xml                   |  6 +++
 .../converter/DataSourceSegmentsConverterTest.java |  4 +-
 proxy/bootstrap/pom.xml                            | 46 ++++++++++++++++++++
 31 files changed, 317 insertions(+), 81 deletions(-)

diff --git a/db-protocol/core/pom.xml b/db-protocol/core/pom.xml
index 44641fa3303..20c8e8490c3 100644
--- a/db-protocol/core/pom.xml
+++ b/db-protocol/core/pom.xml
@@ -40,6 +40,13 @@
             <scope>test</scope>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-handler</artifactId>
diff --git a/db-protocol/mysql/pom.xml b/db-protocol/mysql/pom.xml
index 2f243e927d0..f1bec4e7dee 100644
--- a/db-protocol/mysql/pom.xml
+++ b/db-protocol/mysql/pom.xml
@@ -38,5 +38,11 @@
             <artifactId>shardingsphere-mysql-dialect-exception</artifactId>
             <version>${project.version}</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+        </dependency>
     </dependencies>
 </project>
diff --git a/infra/common/pom.xml b/infra/common/pom.xml
index df4e9aa1ce6..0b33f9ba8c0 100644
--- a/infra/common/pom.xml
+++ b/infra/common/pom.xml
@@ -35,74 +35,54 @@
         
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-mysql</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-mariadb</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-oracle</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-sqlserver</artifactId>
+            
<artifactId>shardingsphere-infra-data-source-pool-hikari</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <artifactId>shardingsphere-parser-sql-engine</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-clickhouse</artifactId>
+            <artifactId>shardingsphere-infra-database-sql92</artifactId>
             <version>${project.version}</version>
         </dependency>
+        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-sql92</artifactId>
+            <artifactId>shardingsphere-test-util</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-infra-database-firebird</artifactId>
+            <artifactId>shardingsphere-test-fixture-database</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
+        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            
<artifactId>shardingsphere-infra-data-source-pool-hikari</artifactId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-parser-sql-engine</artifactId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
             <version>${project.version}</version>
+            <scope>test</scope>
         </dependency>
-        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-test-util</artifactId>
+            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
-            <artifactId>shardingsphere-test-fixture-database</artifactId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
index 516c552150a..4c313dbd078 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/AlterStorageUnitExecutorTest.java
@@ -103,14 +103,14 @@ class AlterStorageUnitExecutorTest {
     }
     
     private AlterStorageUnitStatement createAlterStorageUnitStatement(final 
String resourceName) {
-        return new AlterStorageUnitStatement(Collections.singleton(new 
URLBasedDataSourceSegment(resourceName, "jdbc:mysql://127.0.0.1:3306/ds_0", 
"root", "", new Properties())),
+        return new AlterStorageUnitStatement(Collections.singleton(new 
URLBasedDataSourceSegment(resourceName, "jdbc:mock://127.0.0.1:3306/ds_0", 
"root", "", new Properties())),
                 Collections.emptySet());
     }
     
     private AlterStorageUnitStatement 
createAlterStorageUnitStatementWithDuplicateStorageUnitNames() {
         return new AlterStorageUnitStatement(Arrays.asList(
                 new HostnameAndPortBasedDataSourceSegment("ds_0", "127.0.0.1", 
"3306", "ds_0", "root", "", new Properties()),
-                new URLBasedDataSourceSegment("ds_0", 
"jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties())), 
Collections.emptySet());
+                new URLBasedDataSourceSegment("ds_0", 
"jdbc:mock://127.0.0.1:3306/ds_1", "root", "", new Properties())), 
Collections.emptySet());
     }
     
     private ConnectionProperties mockConnectionProperties(final String 
catalog) {
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
index 7167437d0e0..3b46c59485d 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rdl/resource/RegisterStorageUnitExecutorTest.java
@@ -91,13 +91,13 @@ class RegisterStorageUnitExecutorTest {
     }
     
     private RegisterStorageUnitStatement createRegisterStorageUnitStatement() {
-        return new RegisterStorageUnitStatement(false, 
Collections.singleton(new URLBasedDataSourceSegment("ds_0", 
"jdbc:mysql://127.0.0.1:3306/test0", "root", "", new Properties())),
+        return new RegisterStorageUnitStatement(false, 
Collections.singleton(new URLBasedDataSourceSegment("ds_0", 
"jdbc:mock://127.0.0.1:3306/test0", "root", "", new Properties())),
                 Collections.emptySet());
     }
     
     private RegisterStorageUnitStatement 
createRegisterStorageUnitStatementWithDuplicateStorageUnitNames() {
         return new RegisterStorageUnitStatement(false, Arrays.asList(
                 new HostnameAndPortBasedDataSourceSegment("ds_0", "127.0.0.1", 
"3306", "ds_0", "root", "", new Properties()),
-                new URLBasedDataSourceSegment("ds_0", 
"jdbc:mysql://127.0.0.1:3306/ds_1", "root", "", new Properties())), 
Collections.emptySet());
+                new URLBasedDataSourceSegment("ds_0", 
"jdbc:mock://127.0.0.1:3306/ds_1", "root", "", new Properties())), 
Collections.emptySet());
     }
 }
diff --git 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java
 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java
index 4b830516d40..395e8032e79 100644
--- 
a/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java
+++ 
b/infra/distsql-handler/src/test/java/org/apache/shardingsphere/distsql/handler/executor/rql/resource/ShowStorageUnitExecutorTest.java
@@ -59,7 +59,7 @@ class ShowStorageUnitExecutorTest {
     
     private MockedDataSource createDataSource(final String dataSourceName) {
         MockedDataSource result = new MockedDataSource();
-        result.setUrl("jdbc:mysql://localhost:3307/" + dataSourceName);
+        result.setUrl("jdbc:mock://localhost:3307/" + dataSourceName);
         result.setUsername("root");
         result.setPassword("root");
         result.setMaxPoolSize(100);
@@ -77,7 +77,7 @@ class ShowStorageUnitExecutorTest {
         while (iterator.hasNext()) {
             LocalDataQueryResultRow row = iterator.next();
             assertThat(row.getCell(1), is(storageUnitNames.get(index)));
-            assertThat(row.getCell(2), is("MySQL"));
+            assertThat(row.getCell(2), is("FIXTURE"));
             assertThat(row.getCell(3), is("localhost"));
             assertThat(row.getCell(4), is("3307"));
             assertThat(row.getCell(5), is(storageUnitNames.get(index)));
@@ -98,7 +98,7 @@ class ShowStorageUnitExecutorTest {
         assertThat(actual.size(), is(1));
         LocalDataQueryResultRow row = actual.iterator().next();
         assertThat(row.getCell(1), is("ds_0"));
-        assertThat(row.getCell(2), is("MySQL"));
+        assertThat(row.getCell(2), is("FIXTURE"));
         assertThat(row.getCell(3), is("localhost"));
         assertThat(row.getCell(4), is("3307"));
         assertThat(row.getCell(5), is("ds_0"));
diff --git a/infra/executor/pom.xml b/infra/executor/pom.xml
index 1e4d14aeebc..426512a0366 100644
--- a/infra/executor/pom.xml
+++ b/infra/executor/pom.xml
@@ -46,6 +46,19 @@
             <scope>test</scope>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>transmittable-thread-local</artifactId>
diff --git 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
index 7e45a8df83d..63d78242d37 100644
--- 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
+++ 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheBuilderTest.java
@@ -30,6 +30,6 @@ class SQLStatementCacheBuilderTest {
     
     @Test
     void assertBuild() {
-        
assertThat(SQLStatementCacheBuilder.build(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"), new CacheOption(2000, 65535L), new CacheOption(128, 1024L)), 
isA(LoadingCache.class));
+        
assertThat(SQLStatementCacheBuilder.build(TypedSPILoader.getService(DatabaseType.class,
 "SQL92"), new CacheOption(2000, 65535L), new CacheOption(128, 1024L)), 
isA(LoadingCache.class));
     }
 }
diff --git 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
index 12fff0aab83..7c52ae95c31 100644
--- 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
+++ 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/cache/SQLStatementCacheLoaderTest.java
@@ -36,7 +36,7 @@ class SQLStatementCacheLoaderTest {
     
     @Test
     void assertSQLStatementCacheLoad() throws ReflectiveOperationException {
-        SQLStatementCacheLoader sqlStatementCacheLoader = new 
SQLStatementCacheLoader(TypedSPILoader.getService(DatabaseType.class, "MySQL"), 
new CacheOption(128, 1024L));
+        SQLStatementCacheLoader sqlStatementCacheLoader = new 
SQLStatementCacheLoader(TypedSPILoader.getService(DatabaseType.class, "SQL92"), 
new CacheOption(128, 1024L));
         SQLStatementParserExecutor executor = 
mock(SQLStatementParserExecutor.class, RETURNS_DEEP_STUBS);
         
Plugins.getMemberAccessor().set(SQLStatementCacheLoader.class.getDeclaredField("sqlStatementParserExecutor"),
 sqlStatementCacheLoader, executor);
         assertThat(sqlStatementCacheLoader.load(SQL), isA(SQLStatement.class));
diff --git 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngineFactoryTest.java
 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngineFactoryTest.java
index 0742cb32705..0f56b81c6fe 100644
--- 
a/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngineFactoryTest.java
+++ 
b/infra/parser/src/test/java/org/apache/shardingsphere/infra/parser/sql/SQLStatementParserEngineFactoryTest.java
@@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertSame;
 
 class SQLStatementParserEngineFactoryTest {
     
-    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "MySQL");
+    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "SQL92");
     
     @Test
     void assertGetSQLStatementParserEngineNotSame() {
diff --git 
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java
 
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java
index b13fa95e796..7de54af9cf3 100644
--- 
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java
+++ 
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/SQLRewriteEntryTest.java
@@ -52,13 +52,11 @@ import static org.mockito.Mockito.when;
 
 class SQLRewriteEntryTest {
     
-    private final DatabaseType h2DatabaseType = 
TypedSPILoader.getService(DatabaseType.class, "H2");
-    
-    private final DatabaseType mysqlDatabaseType = 
TypedSPILoader.getService(DatabaseType.class, "MySQL");
+    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
     
     @Test
     void assertRewriteForGenericSQLRewriteResult() {
-        ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", 
h2DatabaseType, mockResourceMetaData(),
+        ShardingSphereDatabase database = new ShardingSphereDatabase("foo_db", 
databaseType, mockResourceMetaData(),
                 mock(RuleMetaData.class), Collections.singleton(new 
ShardingSphereSchema("test")));
         SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(
                 database, new RuleMetaData(Collections.singleton(new 
SQLTranslatorRule(new 
DefaultSQLTranslatorRuleConfigurationBuilder().build()))), new 
ConfigurationProperties(new Properties()));
@@ -73,7 +71,7 @@ class SQLRewriteEntryTest {
         when(result.getSql()).thenReturn("SELECT ?");
         when(result.getParameters()).thenReturn(Collections.singletonList(1));
         CommonSQLStatementContext sqlStatementContext = 
mock(CommonSQLStatementContext.class);
-        when(sqlStatementContext.getDatabaseType()).thenReturn(h2DatabaseType);
+        when(sqlStatementContext.getDatabaseType()).thenReturn(databaseType);
         when(result.getSqlStatementContext()).thenReturn(sqlStatementContext);
         when(result.getHintValueContext()).thenReturn(new HintValueContext());
         return result;
@@ -82,7 +80,7 @@ class SQLRewriteEntryTest {
     @Test
     void assertRewriteForRouteSQLRewriteResult() {
         ShardingSphereDatabase database = new ShardingSphereDatabase(
-                "foo_db", h2DatabaseType, mockResourceMetaData(), 
mock(RuleMetaData.class), Collections.singleton(new 
ShardingSphereSchema("test")));
+                "foo_db", databaseType, mockResourceMetaData(), 
mock(RuleMetaData.class), Collections.singleton(new 
ShardingSphereSchema("test")));
         SQLTranslatorRule sqlTranslatorRule = mock(SQLTranslatorRule.class);
         when(sqlTranslatorRule.translate(any(), any(), any(), any(), any(), 
any())).thenReturn(new SQLTranslatorContext("", Collections.emptyList()));
         SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(database, new 
RuleMetaData(Collections.singleton(sqlTranslatorRule)), new 
ConfigurationProperties(new Properties()));
@@ -99,9 +97,9 @@ class SQLRewriteEntryTest {
     private ResourceMetaData mockResourceMetaData() {
         Map<String, StorageUnit> storageUnits = new LinkedHashMap<>(2, 1F);
         StorageUnit storageUnit1 = mock(StorageUnit.class);
-        when(storageUnit1.getStorageType()).thenReturn(h2DatabaseType);
+        when(storageUnit1.getStorageType()).thenReturn(databaseType);
         StorageUnit storageUnit2 = mock(StorageUnit.class);
-        when(storageUnit2.getStorageType()).thenReturn(mysqlDatabaseType);
+        when(storageUnit2.getStorageType()).thenReturn(mock());
         storageUnits.put("ds_0", storageUnit1);
         storageUnits.put("ds_1", storageUnit2);
         ResourceMetaData result = mock(ResourceMetaData.class);
diff --git 
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/common/pojo/generic/SubstitutableColumnNameTokenTest.java
 
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/common/pojo/generic/SubstitutableColumnNameTokenTest.java
index 4e7144c1cea..d64fc35c660 100644
--- 
a/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/common/pojo/generic/SubstitutableColumnNameTokenTest.java
+++ 
b/infra/rewrite/src/test/java/org/apache/shardingsphere/infra/rewrite/sql/token/common/pojo/generic/SubstitutableColumnNameTokenTest.java
@@ -38,43 +38,37 @@ import static org.mockito.Mockito.mock;
 
 class SubstitutableColumnNameTokenTest {
     
+    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "FIXTURE");
+    
     @Test
     void assertToString() {
         Collection<Projection> projections = Collections.singletonList(new 
ColumnProjection(null, "id", null, mock(DatabaseType.class)));
-        assertThat(
-                new SubstitutableColumnNameToken(0, 1, projections, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"))
-                        .toString(mock(RouteUnit.class)),
-                is("id"));
+        assertThat(new SubstitutableColumnNameToken(0, 1, projections, 
databaseType).toString(mock(RouteUnit.class)), is("id"));
     }
     
     @Test
     void assertToStringWithQuote() {
         Collection<Projection> projections = Collections.singletonList(new 
ColumnProjection(null,
                 new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), mock(DatabaseType.class)));
-        assertThat(
-                new SubstitutableColumnNameToken(0, 1, projections, 
TypedSPILoader.getService(DatabaseType.class, "MySQL"))
-                        .toString(mock(RouteUnit.class)),
-                is("`id` AS `id`"));
+        assertThat(new SubstitutableColumnNameToken(0, 1, projections, 
databaseType).toString(mock(RouteUnit.class)), is("id AS id"));
     }
     
     @Test
     void assertToStringWithOwnerQuote() {
         Collection<Projection> projectionsWithOwnerQuote = 
Collections.singletonList(new ColumnProjection(new IdentifierValue("temp", 
QuoteCharacter.BACK_QUOTE),
                 new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), mock(DatabaseType.class)));
-        assertThat(new SubstitutableColumnNameToken(0, 1, 
projectionsWithOwnerQuote, TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).toString(mock(RouteUnit.class)),
-                is("`temp`.`id` AS `id`"));
+        assertThat(new SubstitutableColumnNameToken(0, 1, 
projectionsWithOwnerQuote, databaseType).toString(mock(RouteUnit.class)), 
is("temp.id AS id"));
         Collection<Projection> projectionsWithoutOwnerQuote = 
Collections.singletonList(new ColumnProjection(new IdentifierValue("temp", 
QuoteCharacter.NONE),
-                new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), mock(DatabaseType.class)));
-        assertThat(new SubstitutableColumnNameToken(0, 1, 
projectionsWithoutOwnerQuote, TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).toString(mock(RouteUnit.class)),
-                is("temp.`id` AS `id`"));
+                new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), databaseType));
+        assertThat(new SubstitutableColumnNameToken(0, 1, 
projectionsWithoutOwnerQuote, databaseType).toString(mock(RouteUnit.class)), 
is("temp.id AS id"));
     }
     
     @Test
     void assertToStringWithSubqueryProjection() {
         Collection<Projection> projections = Arrays.asList(new 
ColumnProjection(new IdentifierValue("temp", QuoteCharacter.BACK_QUOTE),
-                new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), mock(DatabaseType.class)),
-                new SubqueryProjection(new SubqueryProjectionSegment(null, 
"(SELECT name FROM t_order)"), new ColumnProjection(null, "name", null, 
mock(DatabaseType.class)),
-                        new IdentifierValue("name"), 
mock(DatabaseType.class)));
-        assertThat(new SubstitutableColumnNameToken(0, 1, projections, 
TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).toString(mock(RouteUnit.class)), is("`temp`.`id` AS `id`, `name`"));
+                new IdentifierValue("id", QuoteCharacter.BACK_QUOTE), new 
IdentifierValue("id", QuoteCharacter.BACK_QUOTE), databaseType),
+                new SubqueryProjection(new SubqueryProjectionSegment(null, 
"(SELECT name FROM t_order)"),
+                        new ColumnProjection(null, "name", null, 
databaseType), new IdentifierValue("name"), mock(DatabaseType.class)));
+        assertThat(new SubstitutableColumnNameToken(0, 1, projections, 
databaseType).toString(mock(RouteUnit.class)), is("temp.id AS id, name"));
     }
 }
diff --git a/jdbc/pom.xml b/jdbc/pom.xml
index 36cbeecd8e3..b093c1a2c21 100644
--- a/jdbc/pom.xml
+++ b/jdbc/pom.xml
@@ -185,6 +185,52 @@
             <version>${project.version}</version>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mariadb</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-oracle</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-sqlserver</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-clickhouse</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-firebird</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-test-util</artifactId>
diff --git a/kernel/global-clock/core/pom.xml b/kernel/global-clock/core/pom.xml
index b0077743d91..a53c0655886 100644
--- a/kernel/global-clock/core/pom.xml
+++ b/kernel/global-clock/core/pom.xml
@@ -55,5 +55,12 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
index dcf694dcc97..3b2c1291719 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/SingleSQLRouterTest.java
@@ -145,7 +145,7 @@ class SingleSQLRouterTest {
     
     private Connection mockConnection() throws SQLException {
         Connection result = mock(Connection.class, RETURNS_DEEP_STUBS);
-        when(result.getMetaData().getURL()).thenReturn("jdbc:h2:mem:db");
+        
when(result.getMetaData().getURL()).thenReturn("jdbc:mock://127.0.0.1/db");
         return result;
     }
     
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
index b0ea2ccca6e..91ea2640aa5 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/route/engine/engine/SingleRouteEngineTest.java
@@ -131,7 +131,7 @@ class SingleRouteEngineTest {
     private Map<String, DataSource> createDataSourceMap() throws SQLException {
         Map<String, DataSource> result = new HashMap<>(2, 1F);
         Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
-        when(connection.getMetaData().getURL()).thenReturn("jdbc:h2:mem:db");
+        
when(connection.getMetaData().getURL()).thenReturn("jdbc:mock://127.0.0.1/db");
         result.put("ds_0", new MockedDataSource(connection));
         result.put("ds_1", new MockedDataSource(connection));
         return result;
diff --git 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
index 464894ec39d..851c397e7d6 100644
--- 
a/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
+++ 
b/kernel/single/core/src/test/java/org/apache/shardingsphere/single/rule/SingleRuleTest.java
@@ -88,7 +88,7 @@ class SingleRuleTest {
     private DataSource mockDataSource(final String dataSourceName, final 
List<String> tableNames) throws SQLException {
         Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
         when(connection.getCatalog()).thenReturn(dataSourceName);
-        
when(connection.getMetaData().getURL()).thenReturn(String.format("jdbc:h2:mem:%s",
 dataSourceName));
+        
when(connection.getMetaData().getURL()).thenReturn(String.format("jdbc:mock://127.0.0.1/%s",
 dataSourceName));
         DataSource result = new MockedDataSource(connection);
         ResultSet resultSet = mockResultSet(tableNames);
         when(result.getConnection().getMetaData().getTables(dataSourceName, 
null, null, new String[]{TABLE_TYPE, PARTITIONED_TABLE_TYPE, VIEW_TYPE, 
SYSTEM_TABLE_TYPE, SYSTEM_VIEW_TYPE}))
diff --git a/kernel/sql-federation/core/pom.xml 
b/kernel/sql-federation/core/pom.xml
index fc62f199602..16739760888 100644
--- a/kernel/sql-federation/core/pom.xml
+++ b/kernel/sql-federation/core/pom.xml
@@ -56,6 +56,13 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     
     <profiles>
diff --git a/kernel/sql-federation/executor/pom.xml 
b/kernel/sql-federation/executor/pom.xml
index 40d585e0a64..913bdf3fd8b 100644
--- a/kernel/sql-federation/executor/pom.xml
+++ b/kernel/sql-federation/executor/pom.xml
@@ -55,6 +55,13 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     
     <profiles>
diff --git 
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/SQLParserRuleTest.java
 
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/SQLParserRuleTest.java
index d8897224dbc..de7352f520f 100644
--- 
a/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/SQLParserRuleTest.java
+++ 
b/kernel/sql-parser/core/src/test/java/org/apache/shardingsphere/parser/rule/SQLParserRuleTest.java
@@ -39,7 +39,7 @@ class SQLParserRuleTest {
     
     @Test
     void assertGetSQLParserEngine() {
-        
assertNotNull(sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class,
 "H2")));
+        
assertNotNull(sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class,
 "SQL92")));
     }
     
     @Test
diff --git a/kernel/sql-translator/core/pom.xml 
b/kernel/sql-translator/core/pom.xml
index a66307bf223..173fedcbf05 100644
--- a/kernel/sql-translator/core/pom.xml
+++ b/kernel/sql-translator/core/pom.xml
@@ -50,5 +50,18 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/kernel/time-service/type/database/pom.xml 
b/kernel/time-service/type/database/pom.xml
index 75292d71228..604f7a29c7c 100644
--- a/kernel/time-service/type/database/pom.xml
+++ b/kernel/time-service/type/database/pom.xml
@@ -52,6 +52,37 @@
             <scope>test</scope>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-oracle</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-sqlserver</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
diff --git a/kernel/transaction/core/pom.xml b/kernel/transaction/core/pom.xml
index a87f7bd30bb..474bcb97a74 100644
--- a/kernel/transaction/core/pom.xml
+++ b/kernel/transaction/core/pom.xml
@@ -56,5 +56,24 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/kernel/transaction/type/base/seata-at/pom.xml 
b/kernel/transaction/type/base/seata-at/pom.xml
index c9c9f13ff86..03d89a2fcd0 100644
--- a/kernel/transaction/type/base/seata-at/pom.xml
+++ b/kernel/transaction/type/base/seata-at/pom.xml
@@ -54,6 +54,13 @@
             <version>${project.parent.version}</version>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>org.apache.seata</groupId>
             <artifactId>seata-all</artifactId>
diff --git a/kernel/transaction/type/xa/core/pom.xml 
b/kernel/transaction/type/xa/core/pom.xml
index bf5d3d562a0..1781c4f1d77 100644
--- a/kernel/transaction/type/xa/core/pom.xml
+++ b/kernel/transaction/type/xa/core/pom.xml
@@ -48,6 +48,55 @@
             <scope>test</scope>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-oracle</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-sqlserver</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mariadb</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-firebird</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
diff --git a/mode/core/src/test/resources/yaml/persist/data-source-foo.yaml 
b/mode/core/src/test/resources/yaml/persist/data-source-foo.yaml
index 79fcfa6c8d9..f9e29f7de0a 100644
--- a/mode/core/src/test/resources/yaml/persist/data-source-foo.yaml
+++ b/mode/core/src/test/resources/yaml/persist/data-source-foo.yaml
@@ -18,12 +18,12 @@
 foo_ds:
   password: root
   closed: false
-  driverClassName: com.mysql.cj.jdbc.Driver
   dataSourceClassName: 
org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource
+  driverClassName: org.apache.shardingsphere.test.fixture.jdbc.MockedDriver
   connectionInitSqls:
 # No spaces after conversion
   - set names utf8mb4;
   - set names utf8;
-  url: jdbc:mysql://localhost:3306/foo_ds
+  url: jdbc:mock://localhost:3306/foo_ds
   username: root
   
\ No newline at end of file
diff --git a/mode/core/src/test/resources/yaml/persist/data-source.yaml 
b/mode/core/src/test/resources/yaml/persist/data-source.yaml
index 1bd6330fbce..64ffb6f3bd7 100644
--- a/mode/core/src/test/resources/yaml/persist/data-source.yaml
+++ b/mode/core/src/test/resources/yaml/persist/data-source.yaml
@@ -17,8 +17,8 @@
 
 ds_0:
   dataSourceClassName: 
org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource
-  driverClassName: com.mysql.jdbc.Driver
-  url: jdbc:mysql://localhost:3306/ds_0
+  driverClassName: org.apache.shardingsphere.test.fixture.jdbc.MockedDriver
+  url: jdbc:mock://localhost:3306/ds_0
   username: root
   password: root
   connectionInitSqls:
diff --git a/mode/type/cluster/core/src/test/resources/yaml/data-source.yaml 
b/mode/type/cluster/core/src/test/resources/yaml/data-source.yaml
index 0febc45525b..34856c30f4d 100644
--- a/mode/type/cluster/core/src/test/resources/yaml/data-source.yaml
+++ b/mode/type/cluster/core/src/test/resources/yaml/data-source.yaml
@@ -17,6 +17,6 @@
 
 write_ds:
   dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-  url: jdbc:mysql://localhost:3306/demo_write_ds
+  url: jdbc:mock://localhost:3306/demo_write_ds
   username: root
   password: null
diff --git a/parser/distsql/statement/pom.xml b/parser/distsql/statement/pom.xml
index e2e7736a248..1c9b3e31ead 100644
--- a/parser/distsql/statement/pom.xml
+++ b/parser/distsql/statement/pom.xml
@@ -44,5 +44,11 @@
             <version>${project.version}</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-test-fixture-database</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git 
a/parser/distsql/statement/src/test/java/org/apache/shardingsphere/distsql/segment/converter/DataSourceSegmentsConverterTest.java
 
b/parser/distsql/statement/src/test/java/org/apache/shardingsphere/distsql/segment/converter/DataSourceSegmentsConverterTest.java
index 73dcafb71d5..4b65deb98c5 100644
--- 
a/parser/distsql/statement/src/test/java/org/apache/shardingsphere/distsql/segment/converter/DataSourceSegmentsConverterTest.java
+++ 
b/parser/distsql/statement/src/test/java/org/apache/shardingsphere/distsql/segment/converter/DataSourceSegmentsConverterTest.java
@@ -41,7 +41,7 @@ class DataSourceSegmentsConverterTest {
     
     @Test
     void assertConvert() {
-        Map<String, DataSourcePoolProperties> actual = 
DataSourceSegmentsConverter.convert(TypedSPILoader.getService(DatabaseType.class,
 "MySQL"), createDataSourceSegments());
+        Map<String, DataSourcePoolProperties> actual = 
DataSourceSegmentsConverter.convert(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"), createDataSourceSegments());
         assertThat(actual.size(), is(2));
         assertTrue(actual.keySet().containsAll(Arrays.asList("ds0", "ds1")));
         
assertThat(actual.values().iterator().next().getAllLocalProperties().get("username"),
 is("root0"));
@@ -53,7 +53,7 @@ class DataSourceSegmentsConverterTest {
         Collection<DataSourceSegment> result = new LinkedList<>();
         Properties customPoolProps = PropertiesBuilder.build(new 
Property("maxPoolSize", "30"), new Property("min_pool_size", "10"));
         result.add(new HostnameAndPortBasedDataSourceSegment("ds0", 
"127.0.0.1", "3306", "demo_ds_0", "root0", "root0", customPoolProps));
-        result.add(new URLBasedDataSourceSegment("ds1", 
"jdbc:mysql://127.0.0.1:3306/demo_ds_1?useSSL=false", "root1", "root1", 
customPoolProps));
+        result.add(new URLBasedDataSourceSegment("ds1", 
"jdbc:mock://127.0.0.1:3306/demo_ds_1?useSSL=false", "root1", "root1", 
customPoolProps));
         return result;
     }
 }
diff --git a/proxy/bootstrap/pom.xml b/proxy/bootstrap/pom.xml
index 8f0d8d090db..47728010e24 100644
--- a/proxy/bootstrap/pom.xml
+++ b/proxy/bootstrap/pom.xml
@@ -98,6 +98,52 @@
             <version>${project.version}</version>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mysql</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-mariadb</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-postgresql</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-opengauss</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-oracle</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-sqlserver</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-h2</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-clickhouse</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-database-firebird</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-test-util</artifactId>

Reply via email to