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:")));
}
}