Skip to content

Commit d409d3d

Browse files
committed
Update testcontainers to 1.15.0-rc2 (fix for a breaking change that appeared in Docker for Mac v2.4.0.0 testcontainers/testcontainers-java#3159) (#505)
1 parent ba4ca11 commit d409d3d

File tree

24 files changed

+110
-150
lines changed

24 files changed

+110
-150
lines changed

embedded-aerospike/src/main/java/com/playtika/test/aerospike/EmbeddedAerospikeBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public GenericContainer aerospike(AerospikeWaitStrategy aerospikeWaitStrategy,
8080
.withEnv("SERVICE_PORT", String.valueOf(properties.port))
8181
.withEnv("MEM_GB", String.valueOf(1))
8282
.withEnv("STORAGE_GB", String.valueOf(1))
83-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
83+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
8484
.waitingFor(waitStrategy);
8585

8686
aerospike = configureCommonsAndStart(aerospike, properties, log);

embedded-couchbase/src/main/java/com/playtika/test/couchbase/EmbeddedCouchbaseBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public CouchbaseContainer couchbase(ConfigurableEnvironment environment,
6363
.withBucket(bucketDefinition)
6464
.withEnabledServices(properties.getServices())
6565
.withCredentials(properties.getUser(), properties.getPassword())
66-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN));
66+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN));
6767

6868
couchbase = (CouchbaseContainer) configureCommonsAndStart(couchbase, properties, log);
6969

embedded-elasticsearch/src/main/java/com/playtika/test/elasticsearch/ElasticSearchContainerFactory.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,20 @@
3030
import org.testcontainers.containers.wait.strategy.WaitAllStrategy;
3131
import org.testcontainers.containers.wait.strategy.WaitStrategy;
3232
import org.testcontainers.elasticsearch.ElasticsearchContainer;
33+
import org.testcontainers.utility.DockerImageName;
3334

3435
import static com.playtika.test.common.utils.ContainerUtils.DEFAULT_CONTAINER_WAIT_DURATION;
3536

3637
class ElasticSearchContainerFactory {
3738

3839
static ElasticsearchContainer create(ElasticSearchProperties properties) {
39-
return new ElasticsearchContainer(properties.dockerImage)
40+
return new ElasticsearchContainer(DockerImageName.parse(properties.dockerImage)
41+
.asCompatibleSubstituteFor("docker.elastic.co/elasticsearch/elasticsearch"))
4042
.withExposedPorts(properties.httpPort, properties.transportPort)
4143
.withEnv("cluster.name", properties.getClusterName())
4244
.withEnv("discovery.type", "single-node")
4345
.withEnv("ES_JAVA_OPTS", getJavaOpts(properties))
44-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
46+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
4547
.waitingFor(getCompositeWaitStrategy(properties));
4648
}
4749

embedded-elasticsearch/src/test/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
</Console>
77
</Appenders>
88
<Loggers>
9-
<Logger name="com.playtika.test" level="debug"/>
9+
<Logger name="com.playtika.test" level="info"/>
1010
<Root level="error">
1111
<AppenderRef ref="console"/>
1212
</Root>

embedded-influxdb/src/main/java/com/playtika/test/influxdb/EmbeddedInfluxDBBootstrapConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.testcontainers.containers.InfluxDBContainer;
3737
import org.testcontainers.containers.wait.strategy.Wait;
3838
import org.testcontainers.containers.wait.strategy.WaitAllStrategy;
39+
import org.testcontainers.utility.DockerImageName;
3940

4041
import java.util.LinkedHashMap;
4142

@@ -94,7 +95,7 @@ private void registerInfluxEnvironment(ConcreteInfluxDbContainer influx,
9495

9596
private static class ConcreteInfluxDbContainer extends InfluxDBContainer<ConcreteInfluxDbContainer> {
9697
ConcreteInfluxDbContainer(final String dockerImageName) {
97-
setDockerImageName(dockerImageName);
98+
super(DockerImageName.parse(dockerImageName));
9899
addExposedPort(INFLUXDB_PORT);
99100
}
100101
}

embedded-kafka/src/main/java/com/playtika/test/kafka/KafkaTopicsConfigurer.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@
2323
*/
2424
package com.playtika.test.kafka;
2525

26-
import com.playtika.test.common.utils.ContainerUtils;
2726
import com.playtika.test.kafka.properties.KafkaConfigurationProperties;
2827
import com.playtika.test.kafka.properties.ZookeeperConfigurationProperties;
2928
import lombok.Getter;
3029
import lombok.RequiredArgsConstructor;
3130
import lombok.extern.slf4j.Slf4j;
31+
import org.testcontainers.containers.Container;
3232
import org.testcontainers.containers.GenericContainer;
3333

3434
import javax.annotation.PostConstruct;
3535
import java.util.Collection;
3636

37+
import static com.playtika.test.common.utils.ContainerUtils.executeInContainer;
38+
3739
@Slf4j
3840
@RequiredArgsConstructor
3941
@Getter
@@ -60,9 +62,8 @@ public void createTopics(Collection<String> topics) {
6062

6163
private void createTopic(String topic) {
6264
String[] createTopicCmd = getCreateTopicCmd(topic, zookeeperProperties.getZookeeperConnect());
63-
ContainerUtils.ExecCmdResult output = ContainerUtils.execCmd(this.kafka.getDockerClient(), this.kafka.getContainerId(), createTopicCmd);
64-
log.debug("Topic={} creation cmd='{}' exitCode={} : {}",
65-
topic, createTopicCmd, output.getExitCode(), output.getOutput());
65+
Container.ExecResult execResult = executeInContainer(this.kafka, createTopicCmd);
66+
log.debug("Topic={} creation cmd='{}' execResult={}", topic, createTopicCmd, execResult);
6667
}
6768

6869
private void restrictTopics(String username, Collection<String> topics) {
@@ -71,11 +72,11 @@ private void restrictTopics(String username, Collection<String> topics) {
7172
for (String topic : topics) {
7273
String[] topicConsumerACLsCmd = getTopicConsumerACLCmd(username, topic, zookeeperProperties.getZookeeperConnect());
7374
String[] topicProducerACLsCmd = getTopicProducerACLCmd(username, topic, zookeeperProperties.getZookeeperConnect());
74-
ContainerUtils.ExecCmdResult topicConsumerACLsOutput = ContainerUtils.execCmd(this.kafka.getDockerClient(), this.kafka.getContainerId(), topicConsumerACLsCmd);
75-
ContainerUtils.ExecCmdResult topicProducerACLsOutput = ContainerUtils.execCmd(this.kafka.getDockerClient(), this.kafka.getContainerId(), topicProducerACLsCmd);
76-
log.debug("Topic={} consumer ACLs cmd='{}' exitCode={} : {}, producer ACLs cmd='{}' exitCode={} : {}",
77-
topic, topicConsumerACLsCmd, topicConsumerACLsOutput.getExitCode(), topicConsumerACLsOutput.getOutput(),
78-
topicProducerACLsCmd, topicProducerACLsOutput.getExitCode(), topicProducerACLsOutput.getOutput());
75+
Container.ExecResult topicConsumerACLsOutput = executeInContainer(this.kafka, topicConsumerACLsCmd);
76+
Container.ExecResult topicProducerACLsOutput = executeInContainer(this.kafka, topicProducerACLsCmd);
77+
log.debug("Topic={} consumer ACLs cmd='{}' execResult={}, producer ACLs cmd='{}' execResult={}",
78+
topic, topicConsumerACLsCmd, topicConsumerACLsOutput,
79+
topicProducerACLsCmd, topicProducerACLsOutput.getExitCode());
7980
}
8081
log.info("Created ACLs for Kafka topics: {}", topics);
8182
}

embedded-kafka/src/main/java/com/playtika/test/kafka/configuration/KafkaContainerConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public String getBootstrapServers() {
100100
}
101101
}
102102
.withCreateContainerCmdModifier(cmd -> cmd.withHostName(KAFKA_HOST_NAME))
103-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
103+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
104104
.withEmbeddedZookeeper()
105105
.withEnv("KAFKA_BROKER_ID", "-1")
106106
//see: https://stackoverflow.com/questions/41868161/kafka-in-kubernetes-cluster-how-to-publish-consume-messages-from-outside-of-kub

embedded-kafka/src/main/java/com/playtika/test/kafka/configuration/SchemaRegistryContainerConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public GenericContainer schemaRegistry(
6262

6363
GenericContainer schemaRegistry = new FixedHostPortGenericContainer<>(properties.getDockerImage())
6464
.withCreateContainerCmdModifier(cmd -> cmd.withHostName(SCHEMA_REGISTRY_HOST_NAME))
65-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
65+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
6666
.withEnv("SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS", "PLAINTEXT://" + kafkaContainerBrokerList)
6767
.withEnv("SCHEMA_REGISTRY_HOST_NAME", SCHEMA_REGISTRY_HOST_NAME)
6868
.withEnv("SCHEMA_REGISTRY_LISTENERS", "http://0.0.0.0:" + properties.getPort())

embedded-keycloak/src/test/java/com/playtika/test/keycloak/util/RealmInfo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.playtika.test.keycloak.util;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
35
import lombok.Getter;
46
import lombok.Setter;
57
import lombok.ToString;
6-
import org.testcontainers.shaded.com.fasterxml.jackson.annotation.JsonIgnoreProperties;
7-
import org.testcontainers.shaded.com.fasterxml.jackson.annotation.JsonProperty;
88

99
@ToString
1010
@Getter

embedded-localstack/src/main/java/com/playtika/test/localstack/EmbeddedLocalStackBootstrapConfiguration.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.core.env.ConfigurableEnvironment;
1313
import org.springframework.core.env.MapPropertySource;
1414
import org.testcontainers.containers.localstack.LocalStackContainer;
15+
import org.testcontainers.utility.DockerImageName;
1516

1617
import java.util.LinkedHashMap;
1718

@@ -77,7 +78,7 @@ private static void setSystemProperties(EmbeddedLocalStackContainer localStack)
7778

7879
private static class EmbeddedLocalStackContainer extends LocalStackContainer {
7980
EmbeddedLocalStackContainer(final String dockerImageName) {
80-
setDockerImageName(dockerImageName);
81+
super(DockerImageName.parse(dockerImageName));
8182
}
8283
}
8384
}

embedded-localstack/src/test/java/com/playtika/test/localstack/EmbeddedLocalStackTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public void shouldStartS3() throws IOException {
6767

6868
final List<Bucket> buckets = s3.listBuckets();
6969
final Optional<Bucket> maybeBucket = buckets.stream().filter(b -> b.getName().equals(bucketName)).findFirst();
70-
assertThat(maybeBucket.isPresent()).isTrue();
70+
assertThat(maybeBucket).isPresent();
7171

7272
final Bucket bucket = maybeBucket.get();
7373
assertThat(bucketName).isEqualTo(bucket.getName());
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration status="WARN" shutdownHook="disable">
3+
<Appenders>
4+
<Console name="Console" target="SYSTEM_OUT">
5+
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
6+
</Console>
7+
</Appenders>
8+
<Loggers>
9+
<Logger name="com.playtika.test" level="info"/>
10+
<Logger name="org.springframework" level="error"/>
11+
<Root level="error">
12+
<AppenderRef ref="Console"/>
13+
</Root>
14+
</Loggers>
15+
</Configuration>

embedded-mariadb/src/main/java/com/playtika/test/mariadb/EmbeddedMariaDBBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public MariaDBContainer mariadb(ConfigurableEnvironment environment,
6464
"--collation-server=" + properties.getCollation(),
6565
"--max_allowed_packet=" + properties.getMaxAllowedPacket())
6666
.withExposedPorts(properties.port)
67-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
67+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
6868
.withInitScript(properties.initScriptPath);
6969
mariadb = (MariaDBContainer) configureCommonsAndStart(mariadb, properties, log);
7070
registerMariadbEnvironment(mariadb, environment, properties);

embedded-memsql/src/main/java/com/playtika/test/memsql/EmbeddedMemSqlBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public GenericContainer memsql(ConfigurableEnvironment environment,
6767
.withEnv("IGNORE_MIN_REQUIREMENTS", "1")
6868
.withExposedPorts(properties.port)
6969
.withCopyFileToContainer(MountableFile.forClasspathResource("mem.sql"), "/schema.sql")
70-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
70+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
7171
.waitingFor(memSqlStatusCheck);
7272
memsql = configureCommonsAndStart(memsql, properties, log);
7373
registerMemSqlEnvironment(memsql, environment, properties);

embedded-minio/src/main/java/com/playtika/test/minio/EmbeddedMinioBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public GenericContainer minio(MinioWaitStrategy minioWaitStrategy,
7777
.withEnv("MINIO_WORM", properties.worm)
7878
.withEnv("MINIO_BROWSER", properties.browser)
7979
.withCommand("server", properties.directory)
80-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
80+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
8181
.waitingFor(minioWaitStrategy);
8282

8383
minio = configureCommonsAndStart(minio, properties, log);

embedded-mongodb/src/main/java/com/playtika/test/mongodb/EmbeddedMongodbBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public GenericContainer mongodb(
6464
.withEnv("MONGO_INITDB_ROOT_PASSWORD", properties.getPassword())
6565
.withEnv("MONGO_INITDB_DATABASE", properties.getDatabase())
6666
.withExposedPorts(properties.getPort())
67-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
67+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
6868
.waitingFor(mongodbStatusCheck);
6969

7070
mongodb = configureCommonsAndStart(mongodb, properties, log);

embedded-mysql/src/main/java/com/playtika/test/mysql/EmbeddedMySQLBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public MySQLContainer mysql(ConfigurableEnvironment environment,
6363
"--character-set-server=" + properties.getEncoding(),
6464
"--collation-server=" + properties.getCollation())
6565
.withExposedPorts(properties.port)
66-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN))
66+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN))
6767
.withInitScript(properties.initScriptPath);
6868
mysql = (MySQLContainer) configureCommonsAndStart(mysql, properties, log);
6969
registerMySQLEnvironment(mysql, environment, properties);

embedded-neo4j/src/main/java/com/playtika/test/neo4j/EmbeddedNeo4jBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public Neo4jContainer neo4j(ConfigurableEnvironment environment,
5757

5858
Neo4jContainer neo4j = new Neo4jContainer<>(properties.dockerImage)
5959
.withAdminPassword(properties.password)
60-
.withCreateContainerCmdModifier(cmd -> cmd.withCapAdd(Capability.NET_ADMIN));
60+
.withCreateContainerCmdModifier(cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN));
6161
neo4j = (Neo4jContainer) configureCommonsAndStart(neo4j, properties, log);
6262
registerNeo4jEnvironment(neo4j, environment, properties);
6363
return neo4j;

embedded-postgresql/src/main/java/com/playtika/test/postgresql/EmbeddedPostgreSQLBootstrapConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springframework.core.env.ConfigurableEnvironment;
3535
import org.springframework.core.env.MapPropertySource;
3636
import org.testcontainers.containers.PostgreSQLContainer;
37+
import org.testcontainers.utility.DockerImageName;
3738

3839
import java.util.LinkedHashMap;
3940

@@ -54,7 +55,8 @@ public ConcretePostgreSQLContainer postgresql(ConfigurableEnvironment environmen
5455
log.info("Starting postgresql server. Docker image: {}", properties.dockerImage);
5556

5657
ConcretePostgreSQLContainer postgresql =
57-
new ConcretePostgreSQLContainer(properties.dockerImage)
58+
new ConcretePostgreSQLContainer(DockerImageName.parse(properties.dockerImage)
59+
.asCompatibleSubstituteFor("postgres"))
5860
.withUsername(properties.getUser())
5961
.withPassword(properties.getPassword())
6062
.withDatabaseName(properties.getDatabase())
@@ -86,7 +88,7 @@ private void registerPostgresqlEnvironment(ConcretePostgreSQLContainer postgresq
8688
}
8789

8890
private static class ConcretePostgreSQLContainer extends PostgreSQLContainer<ConcretePostgreSQLContainer> {
89-
public ConcretePostgreSQLContainer(String dockerImageName) {
91+
public ConcretePostgreSQLContainer(DockerImageName dockerImageName) {
9092
super(dockerImageName);
9193
}
9294
}

embedded-redis/src/main/java/com/playtika/test/redis/EmbeddedRedisBootstrapConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public GenericContainer redis(ConfigurableEnvironment environment,
9191

9292
// CLUSTER SLOTS command returns IP:port for each node, so ports outside and inside
9393
// container must be the same
94-
Consumer<CreateContainerCmd> containerCmdModifier = cmd -> cmd.withCapAdd(Capability.NET_ADMIN);
94+
Consumer<CreateContainerCmd> containerCmdModifier = cmd -> cmd.getHostConfig().withCapAdd(Capability.NET_ADMIN);
9595
GenericContainer redis =
9696
new FixedHostPortGenericContainer(properties.dockerImage)
9797
.withFixedExposedPort(properties.port, properties.port)

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
6262
<java.version>1.8</java.version>
6363

64-
<testcontainers.version>1.14.3</testcontainers.version>
64+
<testcontainers.version>1.15.0-rc2</testcontainers.version>
6565
<spring.cloud.version>Hoxton.SR8</spring.cloud.version>
6666

6767
<equalsverifier.version>3.4.2</equalsverifier.version>

0 commit comments

Comments
 (0)