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 a86ca4e0abb Add StorageContainerConfigurationOption.getPort() (#36563) a86ca4e0abb is described below commit a86ca4e0abb73b09e4f37af66897d8947491b350 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Sun Sep 14 17:38:17 2025 +0800 Add StorageContainerConfigurationOption.getPort() (#36563) --- .../option/StorageContainerConfigurationOption.java | 7 +++++++ .../dialect/H2StorageContainerConfigurationOption.java | 5 +++++ .../dialect/HiveStorageContainerConfigurationOption.java | 5 +++++ .../MariaDBStorageContainerConfigurationOption.java | 5 +++++ .../MySQLStorageContainerConfigurationOption.java | 5 +++++ .../OpenGaussStorageContainerConfigurationOption.java | 5 +++++ .../PostgreSQLStorageContainerConfigurationOption.java | 5 +++++ .../storage/type/docker/DockerStorageContainer.java | 8 ++++++-- .../atomic/storage/type/docker/impl/HiveContainer.java | 12 ------------ .../storage/type/docker/impl/MariaDBContainer.java | 12 ------------ .../atomic/storage/type/docker/impl/MySQLContainer.java | 12 ------------ .../storage/type/docker/impl/OpenGaussContainer.java | 12 ------------ .../storage/type/docker/impl/PostgreSQLContainer.java | 12 ------------ .../operation/pipeline/env/PipelineE2EEnvironment.java | 16 ++++++++-------- .../transaction/env/TransactionE2EEnvironment.java | 12 ++++++------ 15 files changed, 57 insertions(+), 76 deletions(-) diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/StorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/StorageContainerConfigurationOption.java index 707619990f7..0d1e66781d0 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/StorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/StorageContainerConfigurationOption.java @@ -27,6 +27,13 @@ import java.util.Optional; */ public interface StorageContainerConfigurationOption { + /** + * Get container port. + * + * @return container port + */ + int getPort(); + /** * Get container command. * diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/H2StorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/H2StorageContainerConfigurationOption.java index 5bcc5776104..52ced82d3cf 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/H2StorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/H2StorageContainerConfigurationOption.java @@ -30,6 +30,11 @@ import java.util.Optional; */ public final class H2StorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 0; + } + @Override public String getCommand() { return ""; diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/HiveStorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/HiveStorageContainerConfigurationOption.java index f3d49557714..31c226b8704 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/HiveStorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/HiveStorageContainerConfigurationOption.java @@ -31,6 +31,11 @@ import java.util.Optional; */ public final class HiveStorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 10000; + } + @Override public String getCommand() { return "bash -c 'start-hive.sh && tail -f /dev/null'"; diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MariaDBStorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MariaDBStorageContainerConfigurationOption.java index aaf5e0611e2..b44efdd195a 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MariaDBStorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MariaDBStorageContainerConfigurationOption.java @@ -32,6 +32,11 @@ import java.util.Optional; */ public final class MariaDBStorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 3306; + } + @Override public String getCommand() { return "--server-id=" + ContainerUtils.generateMySQLServerId(); diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MySQLStorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MySQLStorageContainerConfigurationOption.java index 487e7e497aa..a67a7e9eba0 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MySQLStorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/MySQLStorageContainerConfigurationOption.java @@ -34,6 +34,11 @@ import java.util.Optional; */ public final class MySQLStorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 3306; + } + @Override public String getCommand() { return "--server-id=" + ContainerUtils.generateMySQLServerId(); diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/OpenGaussStorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/OpenGaussStorageContainerConfigurationOption.java index ef6e162305b..3a02da337e0 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/OpenGaussStorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/OpenGaussStorageContainerConfigurationOption.java @@ -32,6 +32,11 @@ import java.util.Optional; */ public final class OpenGaussStorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 5432; + } + @Override public String getCommand() { return ""; diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/PostgreSQLStorageContainerConfigurationOption.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/PostgreSQLStorageContainerConfigurationOption.java index a9d5d50b383..662e2498e09 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/PostgreSQLStorageContainerConfigurationOption.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/config/option/dialect/PostgreSQLStorageContainerConfigurationOption.java @@ -32,6 +32,11 @@ import java.util.Optional; */ public final class PostgreSQLStorageContainerConfigurationOption implements StorageContainerConfigurationOption { + @Override + public int getPort() { + return 5432; + } + @Override public String getCommand() { return "-c config_file=/etc/postgresql/postgresql.conf"; diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/DockerStorageContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/DockerStorageContainer.java index 7dab49c6e73..3d15648166a 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/DockerStorageContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/DockerStorageContainer.java @@ -142,14 +142,18 @@ public abstract class DockerStorageContainer extends DockerITContainer implement * * @return exposed database container port */ - public abstract int getExposedPort(); + public final int getExposedPort() { + return storageContainerConfig.getConfigurationOption().getPort(); + } /** * Get database container mapped port. * * @return mapped database container port */ - public abstract int getMappedPort(); + public final int getMappedPort() { + return getMappedPort(getExposedPort()); + } @Override public final String getAbbreviation() { diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/HiveContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/HiveContainer.java index 6723d2ccb7f..7fa57fcdcb5 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/HiveContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/HiveContainer.java @@ -32,22 +32,10 @@ import java.io.IOException; @Slf4j public final class HiveContainer extends DockerStorageContainer { - public static final int EXPOSED_PORT = 10000; - public HiveContainer(final String containerImage, final StorageContainerConfiguration storageContainerConfig) { super(TypedSPILoader.getService(DatabaseType.class, "Hive"), Strings.isNullOrEmpty(containerImage) ? "apache/hive:4.0.1" : containerImage, storageContainerConfig); } - @Override - public int getExposedPort() { - return EXPOSED_PORT; - } - - @Override - public int getMappedPort() { - return getMappedPort(EXPOSED_PORT); - } - @Override protected void postStart() { try { diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MariaDBContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MariaDBContainer.java index b4cf41c1fd5..96ced9aa006 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MariaDBContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MariaDBContainer.java @@ -28,19 +28,7 @@ import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.dock */ public final class MariaDBContainer extends DockerStorageContainer { - public static final int EXPOSED_PORT = 3306; - public MariaDBContainer(final String containerImage, final StorageContainerConfiguration storageContainerConfig) { super(TypedSPILoader.getService(DatabaseType.class, "MariaDB"), Strings.isNullOrEmpty(containerImage) ? "mariadb:11" : containerImage, storageContainerConfig); } - - @Override - public int getExposedPort() { - return EXPOSED_PORT; - } - - @Override - public int getMappedPort() { - return getMappedPort(EXPOSED_PORT); - } } diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MySQLContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MySQLContainer.java index 28c49450a23..eb09eb15e4a 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MySQLContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/MySQLContainer.java @@ -28,19 +28,7 @@ import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.dock */ public final class MySQLContainer extends DockerStorageContainer { - public static final int EXPOSED_PORT = 3306; - public MySQLContainer(final String containerImage, final StorageContainerConfiguration storageContainerConfig) { super(TypedSPILoader.getService(DatabaseType.class, "MySQL"), Strings.isNullOrEmpty(containerImage) ? "mysql:8.0.40" : containerImage, storageContainerConfig); } - - @Override - public int getExposedPort() { - return EXPOSED_PORT; - } - - @Override - public int getMappedPort() { - return getMappedPort(EXPOSED_PORT); - } } diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/OpenGaussContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/OpenGaussContainer.java index 35c5ccc2f42..622769f26cf 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/OpenGaussContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/OpenGaussContainer.java @@ -28,19 +28,7 @@ import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.dock */ public final class OpenGaussContainer extends DockerStorageContainer { - public static final int EXPOSED_PORT = 5432; - public OpenGaussContainer(final String containerImage, final StorageContainerConfiguration storageContainerConfig) { super(TypedSPILoader.getService(DatabaseType.class, "openGauss"), Strings.isNullOrEmpty(containerImage) ? "opengauss/opengauss:3.1.0" : containerImage, storageContainerConfig); } - - @Override - public int getExposedPort() { - return EXPOSED_PORT; - } - - @Override - public int getMappedPort() { - return getMappedPort(EXPOSED_PORT); - } } diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/PostgreSQLContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/PostgreSQLContainer.java index b35fd0053ef..af584481a08 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/PostgreSQLContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/type/docker/impl/PostgreSQLContainer.java @@ -28,19 +28,7 @@ import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.dock */ public final class PostgreSQLContainer extends DockerStorageContainer { - public static final int EXPOSED_PORT = 5432; - public PostgreSQLContainer(final String containerImage, final StorageContainerConfiguration storageContainerConfig) { super(TypedSPILoader.getService(DatabaseType.class, "PostgreSQL"), Strings.isNullOrEmpty(containerImage) ? "postgres:12-alpine" : containerImage, storageContainerConfig); } - - @Override - public int getExposedPort() { - return EXPOSED_PORT; - } - - @Override - public int getMappedPort() { - return getMappedPort(EXPOSED_PORT); - } } diff --git a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java index 60f3d823f83..93dacc91db4 100644 --- a/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java +++ b/test/e2e/operation/pipeline/src/test/java/org/apache/shardingsphere/test/e2e/operation/pipeline/env/PipelineE2EEnvironment.java @@ -21,10 +21,10 @@ import com.google.common.base.Strings; import lombok.Getter; import lombok.SneakyThrows; import org.apache.shardingsphere.database.connector.core.type.DatabaseType; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.MariaDBContainer; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.MySQLContainer; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.OpenGaussContainer; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.PostgreSQLContainer; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.MariaDBStorageContainerConfigurationOption; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.MySQLStorageContainerConfigurationOption; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.OpenGaussStorageContainerConfigurationOption; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.PostgreSQLStorageContainerConfigurationOption; import org.apache.shardingsphere.test.e2e.operation.pipeline.env.enums.PipelineEnvTypeEnum; import org.apache.shardingsphere.test.e2e.operation.pipeline.env.enums.PipelineProxyTypeEnum; @@ -90,13 +90,13 @@ public final class PipelineE2EEnvironment { public int getActualDatabasePort(final DatabaseType databaseType) { switch (databaseType.getType()) { case "MySQL": - return Integer.parseInt(props.getOrDefault("pipeline.it.native.mysql.port", MySQLContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("pipeline.it.native.mysql.port", new MySQLStorageContainerConfigurationOption().getPort()).toString()); case "MariaDB": - return Integer.parseInt(props.getOrDefault("pipeline.it.native.mariadb.port", MariaDBContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("pipeline.it.native.mariadb.port", new MariaDBStorageContainerConfigurationOption().getPort()).toString()); case "PostgreSQL": - return Integer.parseInt(props.getOrDefault("pipeline.it.native.postgresql.port", PostgreSQLContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("pipeline.it.native.postgresql.port", new PostgreSQLStorageContainerConfigurationOption().getPort()).toString()); case "openGauss": - return Integer.parseInt(props.getOrDefault("pipeline.it.native.opengauss.port", OpenGaussContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("pipeline.it.native.opengauss.port", new OpenGaussStorageContainerConfigurationOption().getPort()).toString()); case "Oracle": return Integer.parseInt(props.getOrDefault("pipeline.it.native.oracle.port", 1521).toString()); default: diff --git a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java index 4a4cf816331..918767da081 100644 --- a/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java +++ b/test/e2e/operation/transaction/src/test/java/org/apache/shardingsphere/test/e2e/operation/transaction/env/TransactionE2EEnvironment.java @@ -23,9 +23,9 @@ import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.database.connector.core.type.DatabaseType; import org.apache.shardingsphere.test.e2e.env.container.atomic.constants.ProxyContainerConstants; import org.apache.shardingsphere.test.e2e.env.container.atomic.constants.StorageContainerConstants; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.MySQLContainer; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.OpenGaussContainer; -import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.type.docker.impl.PostgreSQLContainer; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.MySQLStorageContainerConfigurationOption; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.OpenGaussStorageContainerConfigurationOption; +import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.option.dialect.PostgreSQLStorageContainerConfigurationOption; import org.apache.shardingsphere.test.e2e.operation.transaction.env.enums.TransactionE2EEnvTypeEnum; import org.apache.shardingsphere.test.e2e.operation.transaction.env.enums.TransactionTestCaseRegistry; @@ -113,11 +113,11 @@ public final class TransactionE2EEnvironment { public int getActualDataSourceDefaultPort(final DatabaseType databaseType) { switch (databaseType.getType()) { case "MySQL": - return Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", MySQLContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", new MySQLStorageContainerConfigurationOption().getPort()).toString()); case "PostgreSQL": - return Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port", PostgreSQLContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port", new PostgreSQLStorageContainerConfigurationOption().getPort()).toString()); case "openGauss": - return Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", OpenGaussContainer.EXPOSED_PORT).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", new OpenGaussStorageContainerConfigurationOption().getPort()).toString()); default: throw new UnsupportedOperationException(String.format("Unsupported database type: `%s`", databaseType.getType())); }