From debb7e5afb89d072dccefa858a7f166485e95f6b Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 9 Jan 2024 10:11:00 +0100 Subject: [PATCH] Upgrade dependencies. [resolves #628] --- ...resqlHighAvailabilityClusterExtension.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/test/java/io/r2dbc/postgresql/util/PostgresqlHighAvailabilityClusterExtension.java b/src/test/java/io/r2dbc/postgresql/util/PostgresqlHighAvailabilityClusterExtension.java index 999d5611..38cb33dd 100644 --- a/src/test/java/io/r2dbc/postgresql/util/PostgresqlHighAvailabilityClusterExtension.java +++ b/src/test/java/io/r2dbc/postgresql/util/PostgresqlHighAvailabilityClusterExtension.java @@ -21,10 +21,13 @@ import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; +import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import org.testcontainers.containers.Network; import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.containers.output.Slf4jLogConsumer; import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; +import org.testcontainers.utility.DockerImageName; import org.testcontainers.utility.MountableFile; import java.net.URISyntaxException; @@ -118,7 +121,7 @@ private void startPrimary(Network network) { } private void startStandby(Network network) { - this.standby = new PostgreSQLContainer<>(PostgresqlServerExtension.IMAGE_NAME) + this.standby = new CustomPostgreSQLContainer(PostgresqlServerExtension.IMAGE_NAME) .withNetwork(network) .withCopyFileToContainer(getHostPath("setup-standby.sh", 0755), "/setup-standby.sh") .withCommand("/setup-standby.sh") @@ -126,10 +129,6 @@ private void startStandby(Network network) { .withEnv("PG_REP_PASSWORD", "replication_password") .withEnv("PG_MASTER_HOST", "postgres-primary") .withEnv("PG_MASTER_PORT", "5432"); - this.standby.setWaitStrategy(new LogMessageWaitStrategy() - .withRegEx(".*database system is ready to accept .* connections.*\\s") - .withTimes(1) - .withStartupTimeout(Duration.of(60L, ChronoUnit.SECONDS))); this.standby.start(); HikariConfig standbyConfig = new HikariConfig(); standbyConfig.setJdbcUrl(this.standby.getJdbcUrl()); @@ -138,4 +137,16 @@ private void startStandby(Network network) { this.standbyDataSource = new HikariDataSource(standbyConfig); } + // setWaitStrategy() doesn't seem to work, only inside constructor + static class CustomPostgreSQLContainer extends PostgreSQLContainer { + public CustomPostgreSQLContainer(String dockerImageName) { + super(DockerImageName.parse(dockerImageName)); + this.waitStrategy = + new LogMessageWaitStrategy() + .withRegEx(".*database system is ready to accept .*connections.*\\s") + .withTimes(1) + .withStartupTimeout(Duration.of(60L, ChronoUnit.SECONDS)); + } + } + }