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 5e3b672af97 Add support to TestContainers JDBC URL of TIDB to the 
optional module (#29955)
5e3b672af97 is described below

commit 5e3b672af97f9ed862ade43447649836a312f4b7
Author: Ling Hengqian <[email protected]>
AuthorDate: Fri Feb 2 12:31:50 2024 +0800

    Add support to TestContainers JDBC URL of TIDB to the optional module 
(#29955)
---
 ...rsDatabaseType.java => TcTiDBDatabaseType.java} | 25 +++++++++++++++++++---
 .../type/TestcontainersDatabaseType.java           |  2 +-
 ...ingsphere.infra.database.core.type.DatabaseType |  1 +
 .../type/TestcontainersDatabaseTypeTest.java       |  1 +
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcTiDBDatabaseType.java
similarity index 58%
copy from 
infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
copy to 
infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcTiDBDatabaseType.java
index ae2e8bcbae3..85c8df52d92 100644
--- 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
+++ 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcTiDBDatabaseType.java
@@ -18,10 +18,29 @@
 package org.apache.shardingsphere.infra.database.testcontainers.type;
 
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Optional;
 
 /**
- * Database type for Testcontainer.
- * All jdbcUrl prefixes supported by testcontainers-java should extend this 
class.
+ * Database type of TiDB in testcontainers-java.
  */
-public interface TestcontainersDatabaseType extends DatabaseType {
+public final class TcTiDBDatabaseType implements TestcontainersDatabaseType {
+    
+    @Override
+    public Collection<String> getJdbcUrlPrefixes() {
+        return Collections.singleton("jdbc:tc:tidb:");
+    }
+    
+    @Override
+    public Optional<DatabaseType> getTrunkDatabaseType() {
+        return Optional.of(TypedSPILoader.getService(DatabaseType.class, 
"MySQL"));
+    }
+    
+    @Override
+    public String getType() {
+        return "TC-TiDB";
+    }
 }
diff --git 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
index ae2e8bcbae3..241546a55c2 100644
--- 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
+++ 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseType.java
@@ -20,7 +20,7 @@ package 
org.apache.shardingsphere.infra.database.testcontainers.type;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 
 /**
- * Database type for Testcontainer.
+ * Database type for Testcontainers.
  * All jdbcUrl prefixes supported by testcontainers-java should extend this 
class.
  */
 public interface TestcontainersDatabaseType extends DatabaseType {
diff --git 
a/infra/database/type/testcontainers/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
 
b/infra/database/type/testcontainers/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
index 081085fcf0d..bf2f8488897 100644
--- 
a/infra/database/type/testcontainers/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
+++ 
b/infra/database/type/testcontainers/src/main/resources/META-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType
@@ -21,3 +21,4 @@ 
org.apache.shardingsphere.infra.database.testcontainers.type.TcMySQLDatabaseType
 
org.apache.shardingsphere.infra.database.testcontainers.type.TcOracleDatabaseType
 
org.apache.shardingsphere.infra.database.testcontainers.type.TcPostgreSQLDatabaseType
 
org.apache.shardingsphere.infra.database.testcontainers.type.TcSQLServerDatabaseType
+org.apache.shardingsphere.infra.database.testcontainers.type.TcTiDBDatabaseType
diff --git 
a/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
 
b/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
index 6229c141e4b..68e28adab73 100644
--- 
a/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
+++ 
b/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
@@ -36,5 +36,6 @@ class TestcontainersDatabaseTypeTest {
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-Oracle").getJdbcUrlPrefixes(), 
is(Collections.singleton("jdbc:tc:oracle:")));
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-PostgreSQL").getJdbcUrlPrefixes(), 
is(Collections.singleton("jdbc:tc:postgresql:")));
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-SQLServer").getJdbcUrlPrefixes(), 
is(Collections.singleton("jdbc:tc:sqlserver:")));
+        assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-TiDB").getJdbcUrlPrefixes(), is(Collections.singleton("jdbc:tc:tidb:")));
     }
 }

Reply via email to