From 6c504a5098735239552db4c757815816d9ffe9cb Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 24 Apr 2018 10:24:43 +0100 Subject: [PATCH] Fix deprecation warnings in Testcontainers wait strategies See gh-12821 --- .../testcontainers/CassandraContainer.java | 19 +++++++++++------ .../testcontainers/Neo4jContainer.java | 21 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java index a0dcedc2247..8ec58a8de28 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/CassandraContainer.java @@ -24,7 +24,7 @@ import com.datastax.driver.core.exceptions.NoHostAvailableException; import org.rnorth.ducttape.TimeoutException; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.wait.HostPortWaitStrategy; +import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy; /** * A {@link GenericContainer} for Cassandra. @@ -37,14 +37,22 @@ public class CassandraContainer extends Container { private static final int PORT = 9042; public CassandraContainer() { - super("cassandra:3.11.1", PORT, (container) -> container - .waitingFor(new WaitStrategy()).withStartupAttempts(3)); + super("cassandra:3.11.1", PORT, + (container) -> container + .waitingFor(new WaitStrategy(container.getMappedPort(PORT))) + .withStartupAttempts(3)); } private static class WaitStrategy extends HostPortWaitStrategy { + private final int port; + + private WaitStrategy(int port) { + this.port = port; + } + @Override - public void waitUntilReady(GenericContainer container) { + public void waitUntilReady() { super.waitUntilReady(); try { @@ -58,8 +66,7 @@ public class CassandraContainer extends Container { private Callable checkConnection() { return () -> { - try (Cluster cluster = Cluster.builder() - .withPort(container.getMappedPort(PORT)) + try (Cluster cluster = Cluster.builder().withPort(this.port) .addContactPoint("localhost").build()) { cluster.connect(); return true; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/Neo4jContainer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/Neo4jContainer.java index 7d6591425ed..ac12e0170d4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/Neo4jContainer.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/testcontainers/Neo4jContainer.java @@ -24,7 +24,7 @@ import org.neo4j.ogm.session.SessionFactory; import org.rnorth.ducttape.TimeoutException; import org.rnorth.ducttape.unreliables.Unreliables; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.wait.HostPortWaitStrategy; +import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy; /** * A {@link GenericContainer} for Neo4J. @@ -34,19 +34,28 @@ import org.testcontainers.containers.wait.HostPortWaitStrategy; */ public class Neo4jContainer extends Container { + private static final int PORT = 7687; + public Neo4jContainer() { - super("neo4j:3.3.1", 7687, (container) -> container.waitingFor(new WaitStrategy()) - .withEnv("NEO4J_AUTH", "none")); + super("neo4j:3.3.1", PORT, + (container) -> container + .waitingFor(new WaitStrategy(container.getMappedPort(PORT))) + .withEnv("NEO4J_AUTH", "none")); } private static class WaitStrategy extends HostPortWaitStrategy { + private final int port; + + private WaitStrategy(int port) { + this.port = port; + } + @Override - public void waitUntilReady(GenericContainer container) { + public void waitUntilReady() { super.waitUntilReady(); Configuration configuration = new Configuration.Builder() - .uri("bolt://localhost:" + container.getMappedPort(7687)) - .build(); + .uri("bolt://localhost:" + this.port).build(); SessionFactory sessionFactory = new SessionFactory(configuration, "org.springframework.boot.test.autoconfigure.data.neo4j"); try {