This is an automated email from the ASF dual-hosted git repository. drazzib pushed a commit to branch GORA-669-improve-tests-stability in repository https://gitbox.apache.org/repos/asf/gora.git
commit 290115d7c1103d4b9013fbfa51b9542810cd3311 Author: Damien Raude-Morvan <draz...@drazzib.com> AuthorDate: Sat Oct 31 21:30:07 2020 +0100 GORA-669 Use LogMessageWaitStrategy --- .../store/AerospikeStartupLogWaitStrategy.java | 31 ++++----------------- .../couchdb/CouchDBStartupLogWaitStrategy.java | 32 +++------------------- .../redis/util/RedisStartupLogWaitStrategy.java | 31 ++++----------------- .../store/RethinkDBStartupWaitStrategy.java | 31 ++++----------------- 4 files changed, 21 insertions(+), 104 deletions(-) diff --git a/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/AerospikeStartupLogWaitStrategy.java b/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/AerospikeStartupLogWaitStrategy.java index 8b9cf5e..4881f93 100644 --- a/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/AerospikeStartupLogWaitStrategy.java +++ b/gora-aerospike/src/test/java/org/apache/gora/aerospike/store/AerospikeStartupLogWaitStrategy.java @@ -18,36 +18,17 @@ package org.apache.gora.aerospike.store; -import org.testcontainers.containers.ContainerLaunchException; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.output.OutputFrame; -import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.function.Predicate; - -public class AerospikeStartupLogWaitStrategy extends GenericContainer.AbstractWaitStrategy { +public class AerospikeStartupLogWaitStrategy extends LogMessageWaitStrategy { private static final String regEx = ".*heartbeat-received: self 0 foreign 0.*"; private int times = 2; - protected void waitUntilReady() { - WaitingConsumer waitingConsumer = new WaitingConsumer(); - this.container.followOutput(waitingConsumer); - Predicate waitPredicate = (outputFrame) -> { - String trimmedFrameText = ((OutputFrame) outputFrame).getUtf8String().replaceFirst("\n$", ""); - return trimmedFrameText.matches(regEx); - }; - - try { - waitingConsumer.waitUntil(waitPredicate, this.startupTimeout.getSeconds(), TimeUnit.SECONDS, - this.times); - } catch (TimeoutException var4) { - throw new ContainerLaunchException( - "Timed out waiting for log output matching Aerospike server startup Log \'" + regEx - + "\'"); - } + public AerospikeStartupLogWaitStrategy() { + withRegEx(regEx); + withTimes(times); } + } \ No newline at end of file diff --git a/gora-couchdb/src/test/java/org/apache/gora/couchdb/CouchDBStartupLogWaitStrategy.java b/gora-couchdb/src/test/java/org/apache/gora/couchdb/CouchDBStartupLogWaitStrategy.java index 7cd06cf..6fc043d 100644 --- a/gora-couchdb/src/test/java/org/apache/gora/couchdb/CouchDBStartupLogWaitStrategy.java +++ b/gora-couchdb/src/test/java/org/apache/gora/couchdb/CouchDBStartupLogWaitStrategy.java @@ -18,43 +18,19 @@ package org.apache.gora.couchdb; -import org.testcontainers.containers.ContainerLaunchException; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.output.OutputFrame; -import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.function.Predicate; /** * Log based CouchDB server startup wait strategy to sync server * startup to test suit startup. */ -public class CouchDBStartupLogWaitStrategy extends GenericContainer.AbstractWaitStrategy { +public class CouchDBStartupLogWaitStrategy extends LogMessageWaitStrategy { private static final String regEx = ".*Apache CouchDB has started. Time to relax..*"; - private int times = 1; - - protected void waitUntilReady() { - WaitingConsumer waitingConsumer = new WaitingConsumer(); - this.container.followOutput(waitingConsumer); - Predicate waitPredicate = (outputFrame) -> { - String trimmedFrameText = ((OutputFrame) outputFrame) - .getUtf8String() - .replaceFirst("\n$", ""); - return trimmedFrameText.matches(regEx); - }; - - try { - waitingConsumer.waitUntil(waitPredicate, this.startupTimeout.getSeconds(), TimeUnit.SECONDS, - this.times); - } catch (TimeoutException var4) { - throw new ContainerLaunchException( - "Timed out waiting for log output matching CouchDB server startup Log \'" + regEx - + "\'"); - } + public CouchDBStartupLogWaitStrategy() { + withRegEx(regEx); } } \ No newline at end of file diff --git a/gora-redis/src/test/java/org/apache/gora/redis/util/RedisStartupLogWaitStrategy.java b/gora-redis/src/test/java/org/apache/gora/redis/util/RedisStartupLogWaitStrategy.java index b9857b1..f107c1d 100755 --- a/gora-redis/src/test/java/org/apache/gora/redis/util/RedisStartupLogWaitStrategy.java +++ b/gora-redis/src/test/java/org/apache/gora/redis/util/RedisStartupLogWaitStrategy.java @@ -17,38 +17,19 @@ */ package org.apache.gora.redis.util; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.function.Predicate; -import org.testcontainers.containers.ContainerLaunchException; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.output.OutputFrame; -import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; /** * Utility class for detecting when the docker container is ready. */ -public class RedisStartupLogWaitStrategy extends GenericContainer.AbstractWaitStrategy { +public class RedisStartupLogWaitStrategy extends LogMessageWaitStrategy { private static final String REGEX = ".*Background AOF rewrite finished successfully.*"; private final int times = 3; - @Override - protected void waitUntilReady() { - WaitingConsumer waitingConsumer = new WaitingConsumer(); - this.container.followOutput(waitingConsumer); - Predicate waitPredicate = (outputFrame) -> { - String trimmedFrameText = ((OutputFrame) outputFrame).getUtf8String().replaceFirst("\n$", ""); - return trimmedFrameText.matches(REGEX); - }; - - try { - waitingConsumer.waitUntil(waitPredicate, this.startupTimeout.getSeconds(), TimeUnit.SECONDS, - this.times); - } catch (TimeoutException var4) { - throw new ContainerLaunchException( - "Timed out waiting for log output matching Redis server startup Log \'" + REGEX - + "\'"); - } + public RedisStartupLogWaitStrategy() { + withRegEx(REGEX); + withTimes(times); } + } diff --git a/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBStartupWaitStrategy.java b/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBStartupWaitStrategy.java index 9c1939b..0425fcb 100644 --- a/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBStartupWaitStrategy.java +++ b/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBStartupWaitStrategy.java @@ -18,35 +18,14 @@ package org.apache.gora.rethinkdb.store; -import org.testcontainers.containers.ContainerLaunchException; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.output.OutputFrame; -import org.testcontainers.containers.output.WaitingConsumer; +import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; -import java.util.function.Predicate; - -public class RethinkDBStartupWaitStrategy extends GenericContainer.AbstractWaitStrategy { +public class RethinkDBStartupWaitStrategy extends LogMessageWaitStrategy { private static final String regEx = "Server ready,.*"; - private int times = 1; - - protected void waitUntilReady() { - WaitingConsumer waitingConsumer = new WaitingConsumer(); - this.container.followOutput(waitingConsumer); - Predicate waitPredicate = (outputFrame) -> { - String trimmedFrameText = ((OutputFrame) outputFrame).getUtf8String().replaceFirst("\n$", ""); - return trimmedFrameText.matches(regEx); - }; - - try { - waitingConsumer.waitUntil(waitPredicate, this.startupTimeout.getSeconds(), TimeUnit.SECONDS, - this.times); - } catch (TimeoutException var4) { - throw new ContainerLaunchException( - "Timed out waiting for log output matching RethinkDB server startup Log \'" + regEx + "\'"); - } + public RethinkDBStartupWaitStrategy() { + withRegEx(regEx); } + } \ No newline at end of file