GORA-668 Remove usage of FixedHostPortGenericContainer
FixedHostPortGenericContainer might trigger port conflicts with existing containers / daemon on Jenkins node.
For instance, error might look like "Error starting userland proxy: listen tcp 0.0.0.0:5001: bind: address already in use"
Use standard testcontainers GenericContainer with random host port selection.
diff --git a/gora-mongodb/src/test/java/org/apache/gora/mongodb/MongoContainer.java b/gora-mongodb/src/test/java/org/apache/gora/mongodb/MongoContainer.java
index 9abf2a9..231d82c 100644
--- a/gora-mongodb/src/test/java/org/apache/gora/mongodb/MongoContainer.java
+++ b/gora-mongodb/src/test/java/org/apache/gora/mongodb/MongoContainer.java
@@ -18,14 +18,14 @@
package org.apache.gora.mongodb;
import com.mongodb.ServerAddress;
-import org.testcontainers.containers.FixedHostPortGenericContainer;
+import org.testcontainers.containers.GenericContainer;
/**
- * Use {@link FixedHostPortGenericContainer}
+ * Use {@link GenericContainer}
* from <a href="https://www.testcontainers.org/">Testcontainers.org</a> project
* to handle a MongoDB docker container.
*/
-public class MongoContainer extends FixedHostPortGenericContainer<MongoContainer> {
+public class MongoContainer extends GenericContainer<MongoContainer> {
public static final int MONGO_PORT = 27017;
diff --git a/gora-redis/src/test/java/org/apache/gora/redis/GoraRedisTestDriver.java b/gora-redis/src/test/java/org/apache/gora/redis/GoraRedisTestDriver.java
index 9af838e..1180b23 100755
--- a/gora-redis/src/test/java/org/apache/gora/redis/GoraRedisTestDriver.java
+++ b/gora-redis/src/test/java/org/apache/gora/redis/GoraRedisTestDriver.java
@@ -24,7 +24,6 @@
import org.apache.gora.redis.util.RedisStartupLogWaitStrategy;
import org.apache.gora.redis.util.ServerMode;
import org.apache.gora.redis.util.StorageMode;
-import org.testcontainers.containers.FixedHostPortGenericContainer;
import org.testcontainers.containers.GenericContainer;
/**
@@ -34,7 +33,7 @@
public class GoraRedisTestDriver extends GoraTestDriver {
private static final String DOCKER_IMAGE = "grokzen/redis-cluster:latest";
- private final FixedHostPortGenericContainer redisContainer;
+ private final GenericContainer redisContainer;
private final StorageMode storageMode;
private final ServerMode serverMode;
@@ -43,23 +42,12 @@
super(RedisStore.class);
this.storageMode = storageMode;
this.serverMode = serverMode;
- GenericContainer container = new FixedHostPortGenericContainer(DOCKER_IMAGE)
- .withFixedExposedPort(7000, 7000)
- .withFixedExposedPort(7001, 7001)
- .withFixedExposedPort(7002, 7002)
- .withFixedExposedPort(7003, 7003)
- .withFixedExposedPort(7004, 7004)
- .withFixedExposedPort(7005, 7005)
- .withFixedExposedPort(7006, 7006)
- .withFixedExposedPort(7007, 7007)
- .withFixedExposedPort(5000, 5000)
- .withFixedExposedPort(5001, 5001)
- .withFixedExposedPort(5002, 5002)
+ GenericContainer container = new GenericContainer(DOCKER_IMAGE)
.waitingFor(new RedisStartupLogWaitStrategy())
.withStartupTimeout(Duration.ofMinutes(3))
.withEnv("STANDALONE", "true")
.withEnv("SENTINEL", "true");
- redisContainer = (FixedHostPortGenericContainer) container;
+ redisContainer = container;
}
diff --git a/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBGoraDataStoreTest.java b/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBGoraDataStoreTest.java
index 0270da2..23edbbc 100644
--- a/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBGoraDataStoreTest.java
+++ b/gora-rethinkdb/src/test/java/org/apache/gora/rethinkdb/store/RethinkDBGoraDataStoreTest.java
@@ -28,7 +28,6 @@
import org.junit.Ignore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.FixedHostPortGenericContainer;
import org.testcontainers.containers.GenericContainer;
import java.time.Duration;
@@ -43,8 +42,7 @@
private static final String DOCKER_CONTAINER_NAME = "rethinkdb:2.3.6";
@ClassRule
- public static GenericContainer rethinkdbContainer = new FixedHostPortGenericContainer(DOCKER_CONTAINER_NAME)
- .withFixedExposedPort(28015, 28015)
+ public static GenericContainer rethinkdbContainer = new GenericContainer(DOCKER_CONTAINER_NAME)
.waitingFor(new RethinkDBStartupWaitStrategy())
.withStartupTimeout(Duration.ofSeconds(10));