This is an automated email from the ASF dual-hosted git repository. panjuan 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 7d0c633de85 Refactor : refactor the env module for further cluster container refactor. (#20790) 7d0c633de85 is described below commit 7d0c633de85dd3323153a1795ac16e38be5140a8 Author: 孙念君 Nianjun Sun <sunnian...@sphere-ex.com> AuthorDate: Mon Sep 5 15:19:10 2022 +0800 Refactor : refactor the env module for further cluster container refactor. (#20790) * Add : add new util to generate random port for storage container * Refactor : refactor the util to get available port for storage container * Refactor : add mapped port for further refactor --- .../queryable/ConvertYamlConfigurationHandler.java | 2 +- .../ConvertYamlConfigurationHandlerTest.java | 14 ++++----- .../constants/StorageContainerConstants.java | 6 ++++ .../atomic/storage/DockerStorageContainer.java | 33 +++++++++++++--------- .../atomic/storage/impl/MySQLContainer.java | 10 +++++-- .../atomic/storage/impl/OpenGaussContainer.java | 12 ++++++-- .../atomic/storage/impl/PostgreSQLContainer.java | 10 +++++-- .../test/integration/ha/cases/base/BaseITCase.java | 2 +- .../data/pipeline/cases/base/BaseITCase.java | 4 +-- .../pipeline/env/IntegrationTestEnvironment.java | 7 +++-- .../transaction/engine/base/BaseITCase.java | 8 +++--- .../env/IntegrationTestEnvironment.java | 6 ++-- 12 files changed, 73 insertions(+), 41 deletions(-) diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java index 2ad70f4fa71..26c1bf17519 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java @@ -564,7 +564,7 @@ public final class ConvertYamlConfigurationHandler extends QueryableRALBackendHa } return result.toString(); } - + private String getQueryWithCipher(final Boolean queryWithCipherColumn, final YamlRuleConfiguration ruleConfig) { StringBuilder result = new StringBuilder(); if (null != queryWithCipherColumn) { diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java index 042158d996b..630fc3daaeb 100644 --- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java +++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java @@ -53,7 +53,7 @@ public final class ConvertYamlConfigurationHandlerTest extends ProxyContextResto private final String readWriteSplittingFilePath = "/conf/convert/config-readwrite-splitting.yaml"; private final String databaseDiscoveryFilePath = "/conf/convert/config-database-discovery.yaml"; - + private final String encryptFilePath = "/conf/convert/config-encrypt.yaml"; private final String resourceExpectedFilePath = "/expected/convert-add-resource.yaml"; @@ -63,7 +63,7 @@ public final class ConvertYamlConfigurationHandlerTest extends ProxyContextResto private final String readWriteSplittingExpectedFilePath = "/expected/convert-readwrite-splitting.yaml"; private final String databaseDiscoveryExpectedFilePath = "/expected/convert-database-discovery.yaml"; - + private final String encryptExpectedFilePath = "/expected/convert-create-encrypt.yaml"; private final String resource = "resource"; @@ -71,11 +71,11 @@ public final class ConvertYamlConfigurationHandlerTest extends ProxyContextResto private final String sharding = "sharding"; private final String readWriteSplitting = "readWriteSplitting"; - + private final String databaseDiscovery = "databaseDiscovery"; - + private final String encrypt = "encrypt"; - + private final Map<String, String> featureMap = new HashMap<>(5, 1); @Before @@ -112,12 +112,12 @@ public final class ConvertYamlConfigurationHandlerTest extends ProxyContextResto public void assertExecuteWithCreateDatabaseDiscovery() throws SQLException { assertExecute(databaseDiscovery, databaseDiscoveryExpectedFilePath); } - + @Test public void assertExecuteWithCreateEncrypt() throws SQLException { assertExecute(encrypt, encryptExpectedFilePath); } - + public void assertExecute(final String type, final String expectedFilePath) throws SQLException { ConvertYamlConfigurationHandler handler = new ConvertYamlConfigurationHandler(); handler.init(new ConvertYamlConfigurationStatement(Objects.requireNonNull(ConvertYamlConfigurationHandlerTest.class.getResource(featureMap.get(type))).getPath()), diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/constants/StorageContainerConstants.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/constants/StorageContainerConstants.java index 1fc59949727..3d49a445c85 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/constants/StorageContainerConstants.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/constants/StorageContainerConstants.java @@ -26,6 +26,12 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class StorageContainerConstants { + public static final int MYSQL_EXPOSED_PORT = 3306; + + public static final int POSTGRESQL_EXPOSED_PORT = 5432; + + public static final int OPENGAUSS_EXPOSED_PORT = 5432; + public static final String USERNAME = "test_user"; public static final String PASSWORD = "Test@123"; diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/DockerStorageContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/DockerStorageContainer.java index ded554f7450..a2e1348d7a4 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/DockerStorageContainer.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/DockerStorageContainer.java @@ -76,11 +76,11 @@ public abstract class DockerStorageContainer extends DockerITContainer implement withClasspathResourceMapping(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.ACTUAL, databaseType), "/docker-entrypoint-initdb.d/", BindMode.READ_ONLY); withClasspathResourceMapping(new ScenarioDataPath(scenario).getInitSQLResourcePath(Type.EXPECTED, databaseType), "/docker-entrypoint-initdb.d/", BindMode.READ_ONLY); } - withExposedPorts(getPort()); + withExposedPorts(getExposedPort()); setWaitStrategy(new JdbcConnectionWaitStrategy( () -> DriverManager.getConnection(getDefaultDatabaseName().isPresent() ? DataSourceEnvironment.getURL(databaseType, "localhost", getFirstMappedPort(), getDefaultDatabaseName().get()) - : DataSourceEnvironment.getURL(databaseType, "localhost", getFirstMappedPort()), getUsername(), getUnifiedPassword()))); + : DataSourceEnvironment.getURL(databaseType, "localhost", getFirstMappedPort()), getUsername(), getPassword()))); } protected final void setCommands(final String command) { @@ -119,7 +119,7 @@ public abstract class DockerStorageContainer extends DockerITContainer implement result.setDriverClassName(DataSourceEnvironment.getDriverClassName(databaseType)); result.setJdbcUrl(getJdbcUrl(dataSourceName)); result.setUsername(getUsername()); - result.setPassword(getUnifiedPassword()); + result.setPassword(getPassword()); result.setMaximumPoolSize(4); result.setTransactionIsolation("TRANSACTION_READ_COMMITTED"); return result; @@ -132,9 +132,11 @@ public abstract class DockerStorageContainer extends DockerITContainer implement * @return JDBC URL */ public String getJdbcUrl(final String dataSourceName) { - return DataSourceEnvironment.getURL(databaseType, getHost(), getMappedPort(getPort()), dataSourceName); + return DataSourceEnvironment.getURL(databaseType, getHost(), getMappedPort(getExposedPort()), dataSourceName); } + protected abstract Optional<String> getDefaultDatabaseName(); + /** * Get username. * @@ -144,23 +146,28 @@ public abstract class DockerStorageContainer extends DockerITContainer implement return StorageContainerConstants.USERNAME; } - /** - * Get database port. - * - * @return database port - */ - public abstract int getPort(); - /** * Get unified database access password. * * @return unified database access password */ - public final String getUnifiedPassword() { + public final String getPassword() { return StorageContainerConstants.PASSWORD; } - protected abstract Optional<String> getDefaultDatabaseName(); + /** + * Get database container exposed port. + * + * @return exposed database container port + */ + public abstract int getExposedPort(); + + /** + * Get database container mapped port. + * + * @return mapped database container port + */ + protected abstract int getMappedPort(); @Override public final String getAbbreviation() { diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/MySQLContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/MySQLContainer.java index 36617eb7b31..f5bdc16b32f 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/MySQLContainer.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/MySQLContainer.java @@ -19,6 +19,7 @@ package org.apache.shardingsphere.test.integration.env.container.atomic.storage. import com.google.common.base.Strings; import org.apache.shardingsphere.infra.database.type.DatabaseTypeFactory; +import org.apache.shardingsphere.test.integration.env.container.atomic.constants.StorageContainerConstants; import org.apache.shardingsphere.test.integration.env.container.atomic.storage.DockerStorageContainer; import org.apache.shardingsphere.test.integration.env.container.atomic.storage.config.StorageContainerConfiguration; @@ -45,8 +46,13 @@ public final class MySQLContainer extends DockerStorageContainer { } @Override - public int getPort() { - return 3306; + public int getExposedPort() { + return StorageContainerConstants.MYSQL_EXPOSED_PORT; + } + + @Override + public int getMappedPort() { + return getMappedPort(StorageContainerConstants.MYSQL_EXPOSED_PORT); } @Override diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/OpenGaussContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/OpenGaussContainer.java index 3901eb01c2a..ad72020d496 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/OpenGaussContainer.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/OpenGaussContainer.java @@ -49,8 +49,13 @@ public final class OpenGaussContainer extends DockerStorageContainer { } @Override - public int getPort() { - return 5432; + public int getExposedPort() { + return StorageContainerConstants.OPENGAUSS_EXPOSED_PORT; + } + + @Override + public int getMappedPort() { + return this.getMappedPort(StorageContainerConstants.OPENGAUSS_EXPOSED_PORT); } @Override @@ -60,6 +65,7 @@ public final class OpenGaussContainer extends DockerStorageContainer { @Override public String getJdbcUrl(final String dataSourceName) { - return DataSourceEnvironment.getURL(getDatabaseType(), getHost(), getMappedPort(getPort()), StringUtils.isNotEmpty(dataSourceName) ? dataSourceName : StorageContainerConstants.USERNAME); + return DataSourceEnvironment.getURL(getDatabaseType(), getHost(), + getMappedPort(getExposedPort()), StringUtils.isNotEmpty(dataSourceName) ? dataSourceName : StorageContainerConstants.USERNAME); } } diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/PostgreSQLContainer.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/PostgreSQLContainer.java index a2c503d2e04..2ee23cdd4f1 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/PostgreSQLContainer.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-env/src/test/java/org/apache/shardingsphere/test/integration/env/container/atomic/storage/impl/PostgreSQLContainer.java @@ -19,6 +19,7 @@ package org.apache.shardingsphere.test.integration.env.container.atomic.storage. import com.google.common.base.Strings; import org.apache.shardingsphere.infra.database.type.DatabaseTypeFactory; +import org.apache.shardingsphere.test.integration.env.container.atomic.constants.StorageContainerConstants; import org.apache.shardingsphere.test.integration.env.container.atomic.storage.DockerStorageContainer; import org.apache.shardingsphere.test.integration.env.container.atomic.storage.config.StorageContainerConfiguration; @@ -45,8 +46,13 @@ public final class PostgreSQLContainer extends DockerStorageContainer { } @Override - public int getPort() { - return 5432; + public int getExposedPort() { + return StorageContainerConstants.POSTGRESQL_EXPOSED_PORT; + } + + @Override + public int getMappedPort() { + return getMappedPort(StorageContainerConstants.POSTGRESQL_EXPOSED_PORT); } @Override diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-ha/src/test/java/org/apache/shardingsphere/test/integration/ha/cases/base/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-ha/src/test/java/org/apache/shardingsphere/test/integration/ha/cases/base/BaseITCase.java index 20a2cce64ef..1d3e85abd7d 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-ha/src/test/java/org/apache/shardingsphere/test/integration/ha/cases/base/BaseITCase.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-ha/src/test/java/org/apache/shardingsphere/test/integration/ha/cases/base/BaseITCase.java @@ -77,7 +77,7 @@ public abstract class BaseITCase { private void initStorageDataSources() { List<DockerStorageContainer> storageContainers = ((DockerContainerComposer) containerComposer).getStorageContainers(); this.storageDataSources = storageContainers.stream() - .map(storageContainer -> DataSourceEnvironment.getURL(getDatabaseType(), storageContainer.getNetworkAliases().get(0), storageContainer.getPort(), DEFAULT_SCHEMA)) + .map(storageContainer -> DataSourceEnvironment.getURL(getDatabaseType(), storageContainer.getNetworkAliases().get(0), storageContainer.getExposedPort(), DEFAULT_SCHEMA)) .map(jdbcUrl -> getDataSource(jdbcUrl, StorageContainerConstants.USERNAME, StorageContainerConstants.PASSWORD)) .collect(Collectors.toList()); } diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java index 634fa89de25..cded9b3f17f 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java @@ -115,7 +115,7 @@ public abstract class BaseITCase { if (ENV.getItEnvType() == ITEnvTypeEnum.DOCKER) { DockerStorageContainer storageContainer = ((DockerComposedContainer) composedContainer).getStorageContainer(); username = storageContainer.getUsername(); - password = storageContainer.getUnifiedPassword(); + password = storageContainer.getPassword(); } else { username = ENV.getActualDataSourceUsername(databaseType); password = ENV.getActualDataSourcePassword(databaseType); @@ -175,7 +175,7 @@ public abstract class BaseITCase { if (ITEnvTypeEnum.DOCKER == ENV.getItEnvType()) { DockerStorageContainer storageContainer = ((DockerComposedContainer) composedContainer).getStorageContainer(); if (isInContainer) { - return DataSourceEnvironment.getURL(getDatabaseType(), getDatabaseType().getType().toLowerCase() + ".host", storageContainer.getPort(), databaseName); + return DataSourceEnvironment.getURL(getDatabaseType(), getDatabaseType().getType().toLowerCase() + ".host", storageContainer.getExposedPort(), databaseName); } else { return DataSourceEnvironment.getURL(getDatabaseType(), storageContainer.getHost(), storageContainer.getFirstMappedPort(), databaseName); } diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java index 508df8f0b03..e5c5aad54e6 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java @@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shardingsphere.infra.database.type.DatabaseType; import org.apache.shardingsphere.integration.data.pipeline.env.enums.ITEnvTypeEnum; +import org.apache.shardingsphere.test.integration.env.container.atomic.constants.StorageContainerConstants; import java.io.IOException; import java.io.InputStream; @@ -96,11 +97,11 @@ public final class IntegrationTestEnvironment { public int getActualDataSourceDefaultPort(final DatabaseType databaseType) { switch (databaseType.getType()) { case "MySQL": - return Integer.parseInt(props.getOrDefault("scaling.it.native.mysql.port", 3306).toString()); + return Integer.parseInt(props.getOrDefault("scaling.it.native.mysql.port", StorageContainerConstants.MYSQL_EXPOSED_PORT).toString()); case "PostgreSQL": - return Integer.parseInt(props.getOrDefault("scaling.it.native.postgresql.port", 5432).toString()); + return Integer.parseInt(props.getOrDefault("scaling.it.native.postgresql.port", StorageContainerConstants.POSTGRESQL_EXPOSED_PORT).toString()); case "openGauss": - return Integer.parseInt(props.getOrDefault("scaling.it.native.opengauss.port", 5432).toString()); + return Integer.parseInt(props.getOrDefault("scaling.it.native.opengauss.port", StorageContainerConstants.OPENGAUSS_EXPOSED_PORT).toString()); default: throw new IllegalArgumentException("Unsupported database type: " + databaseType.getType()); } diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java index 019edebf521..df68e9654b4 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java @@ -139,9 +139,9 @@ public abstract class BaseITCase { private DataSource createDataSource(final DockerStorageContainer databaseContainer, final String dataSourceName) { HikariDataSource result = new HikariDataSource(); result.setDriverClassName(DataSourceEnvironment.getDriverClassName(databaseType)); - result.setJdbcUrl(DataSourceEnvironment.getURL(databaseType, databaseContainer.getHost(), databaseContainer.getMappedPort(databaseContainer.getPort()), dataSourceName)); + result.setJdbcUrl(DataSourceEnvironment.getURL(databaseType, databaseContainer.getHost(), databaseContainer.getMappedPort(databaseContainer.getExposedPort()), dataSourceName)); result.setUsername(databaseContainer.getUsername()); - result.setPassword(databaseContainer.getUnifiedPassword()); + result.setPassword(databaseContainer.getPassword()); result.setMaximumPoolSize(50); result.setIdleTimeout(60000); result.setMaxLifetime(1800000); @@ -321,7 +321,7 @@ public abstract class BaseITCase { if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) { DockerComposedContainer dockerComposedContainer = (DockerComposedContainer) composedContainer; DockerStorageContainer databaseContainer = dockerComposedContainer.getStorageContainer(); - jdbcInfo = new JdbcInfoEntity(databaseContainer.getUsername(), databaseContainer.getUnifiedPassword(), databaseContainer.getPort()); + jdbcInfo = new JdbcInfoEntity(databaseContainer.getUsername(), databaseContainer.getPassword(), databaseContainer.getExposedPort()); } else { jdbcInfo = ENV.getActualDatabaseJdbcInfo(getDatabaseType()); } @@ -471,7 +471,7 @@ public abstract class BaseITCase { private String getActualJdbcUrlTemplate(final String databaseName) { if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) { final DockerStorageContainer databaseContainer = ((DockerComposedContainer) composedContainer).getStorageContainer(); - return DataSourceEnvironment.getURL(getDatabaseType(), getDatabaseType().getType().toLowerCase() + ".host", databaseContainer.getPort(), databaseName); + return DataSourceEnvironment.getURL(getDatabaseType(), getDatabaseType().getType().toLowerCase() + ".host", databaseContainer.getExposedPort(), databaseName); } else { return DataSourceEnvironment.getURL(getDatabaseType(), "127.0.0.1", ENV.getActualDataSourceDefaultPort(databaseType), databaseName); } diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/env/IntegrationTestEnvironment.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/env/IntegrationTestEnvironment.java index 87f2a3349f1..aa74961d960 100644 --- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/env/IntegrationTestEnvironment.java +++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-transaction/src/test/java/org/apache/shardingsphere/integration/transaction/env/IntegrationTestEnvironment.java @@ -140,11 +140,11 @@ public final class IntegrationTestEnvironment { public int getActualDataSourceDefaultPort(final DatabaseType databaseType) { switch (databaseType.getType()) { case "MySQL": - return Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", 3306).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.mysql.port", StorageContainerConstants.MYSQL_EXPOSED_PORT).toString()); case "PostgreSQL": - return Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port", 5432).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.postgresql.port", StorageContainerConstants.POSTGRESQL_EXPOSED_PORT).toString()); case "openGauss": - return Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", 5432).toString()); + return Integer.parseInt(props.getOrDefault("transaction.it.native.opengauss.port", StorageContainerConstants.OPENGAUSS_EXPOSED_PORT).toString()); default: throw new IllegalArgumentException("Unsupported database type: " + databaseType.getType()); }