From 95ae65170d11461b5dbd75aee202ce2c70b9a930 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 08:58:38 +0000 Subject: [PATCH 01/11] Bump kafka-clients from 2.3.1 to 2.4.0 in /modules/kafka (#2182) Bumps kafka-clients from 2.3.1 to 2.4.0. Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- modules/kafka/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/kafka/build.gradle b/modules/kafka/build.gradle index d9d7c20ca4a..d064e46c1dc 100644 --- a/modules/kafka/build.gradle +++ b/modules/kafka/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Kafka" dependencies { compile project(':testcontainers') - testCompile 'org.apache.kafka:kafka-clients:2.3.1' + testCompile 'org.apache.kafka:kafka-clients:2.4.0' testCompile 'org.assertj:assertj-core:3.14.0' testCompile 'com.google.guava:guava:23.0' } From 4170e72e3e2d32064a71af117026356cb92a3139 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 08:58:47 +0000 Subject: [PATCH 02/11] Bump jedis from 3.1.0 to 3.2.0 in /modules/junit-jupiter (#2181) Bumps [jedis](https://github.com/xetorthio/jedis) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/xetorthio/jedis/releases) - [Commits](https://github.com/xetorthio/jedis/compare/jedis-3.1.0...jedis-3.2.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 8ff335251a3..6cae8d48a67 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -7,7 +7,7 @@ dependencies { testCompile project(':mysql') testCompile project(':postgresql') testCompile 'com.zaxxer:HikariCP:3.4.1' - testCompile 'redis.clients:jedis:3.1.0' + testCompile 'redis.clients:jedis:3.2.0' testCompile 'org.apache.httpcomponents:httpclient:4.5.10' testCompile ('org.mockito:mockito-core:3.2.0') { exclude(module: 'hamcrest-core') From 6958fb2c9af5ab953787086d5ddc110e326d4a00 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 08:58:58 +0000 Subject: [PATCH 03/11] Bump jedis from 3.1.0 to 3.2.0 in /core (#2183) Bumps [jedis](https://github.com/xetorthio/jedis) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/xetorthio/jedis/releases) - [Commits](https://github.com/xetorthio/jedis/compare/jedis-3.1.0...jedis-3.2.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 618c31c7176..8517033e51b 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -106,7 +106,7 @@ dependencies { } testCompile 'org.apache.httpcomponents:httpclient:4.5.9' - testCompile 'redis.clients:jedis:3.1.0' + testCompile 'redis.clients:jedis:3.2.0' testCompile 'com.rabbitmq:amqp-client:5.8.0' testCompile 'org.mongodb:mongo-java-driver:3.12.0' testCompile ('org.mockito:mockito-core:3.2.0') { From 639cacde7e0bb825da1ace99c7b70ca0d8233802 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 09:29:52 +0000 Subject: [PATCH 04/11] Bump elasticsearch-rest-client in /modules/elasticsearch (#2197) --- modules/elasticsearch/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elasticsearch/build.gradle b/modules/elasticsearch/build.gradle index 9e7ac832916..2201efff48a 100644 --- a/modules/elasticsearch/build.gradle +++ b/modules/elasticsearch/build.gradle @@ -2,6 +2,6 @@ description = "TestContainers :: elasticsearch" dependencies { compile project(':testcontainers') - testCompile "org.elasticsearch.client:elasticsearch-rest-client:7.5.0" + testCompile "org.elasticsearch.client:elasticsearch-rest-client:7.5.1" testCompile "org.elasticsearch.client:transport:6.7.1" } From b0d1c9be21ee0bd9255920ef7b7299807053df7c Mon Sep 17 00:00:00 2001 From: Sergei Egorov Date: Thu, 19 Dec 2019 10:48:33 +0100 Subject: [PATCH 05/11] Use `inspectNetworkCmd` to get the gateway's IP (#2151) --- .../dockerclient/DockerClientConfigUtils.java | 6 ++- .../DockerClientProviderStrategy.java | 39 ++++++++++++++++++- .../DockerClientConfigUtilsTest.java | 38 ++++++------------ 3 files changed, 53 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java b/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java index bfeabc63f8a..d88dc76331f 100644 --- a/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java +++ b/core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java @@ -43,8 +43,10 @@ public class DockerClientConfigUtils { .map(StringUtils::trimToEmpty) .filter(StringUtils::isNotBlank); - - + /** + * Use {@link DockerClientFactory#dockerHostIpAddress()} + */ + @Deprecated public static String getDockerHostIpAddress(DockerClientConfig config) { switch (config.getDockerHost().getScheme()) { case "http": diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java index 7101b23b21a..aa607964ae5 100644 --- a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java +++ b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java @@ -1,8 +1,10 @@ package org.testcontainers.dockerclient; import com.github.dockerjava.api.DockerClient; +import com.github.dockerjava.api.model.Network; import com.github.dockerjava.core.DockerClientBuilder; import com.github.dockerjava.core.DockerClientConfig; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Throwables; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; @@ -17,6 +19,7 @@ import org.testcontainers.dockerclient.transport.okhttp.OkHttpDockerCmdExecFactory; import org.testcontainers.utility.TestcontainersConfiguration; +import java.net.URI; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -33,6 +36,8 @@ public abstract class DockerClientProviderStrategy { protected DockerClient client; protected DockerClientConfig config; + private String dockerHostIpAddress; + private static final RateLimiter PING_RATE_LIMITER = RateLimiterBuilder.newBuilder() .withRate(2, TimeUnit.SECONDS) .withConstantThroughput() @@ -188,8 +193,38 @@ protected void ping(DockerClient client, int timeoutInSeconds) { } } - public String getDockerHostIpAddress() { - return DockerClientConfigUtils.getDockerHostIpAddress(this.config); + public synchronized String getDockerHostIpAddress() { + if (dockerHostIpAddress == null) { + dockerHostIpAddress = resolveDockerHostIpAddress(client, config.getDockerHost()); + } + return dockerHostIpAddress; + } + + @VisibleForTesting + static String resolveDockerHostIpAddress(DockerClient client, URI dockerHost) { + switch (dockerHost.getScheme()) { + case "http": + case "https": + case "tcp": + return dockerHost.getHost(); + case "unix": + case "npipe": + if (DockerClientConfigUtils.IN_A_CONTAINER) { + return client.inspectNetworkCmd() + .withNetworkId("bridge") + .exec() + .getIpam() + .getConfig() + .stream() + .filter(it -> it.getGateway() != null) + .findAny() + .map(Network.Ipam.Config::getGateway) + .orElse("localhost"); + } + return "localhost"; + default: + return null; + } } protected void checkOSType() { diff --git a/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java b/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java index 2e88982a7a8..353d6ea94e7 100644 --- a/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java +++ b/core/src/test/java/org/testcontainers/dockerclient/DockerClientConfigUtilsTest.java @@ -1,9 +1,10 @@ package org.testcontainers.dockerclient; -import com.github.dockerjava.core.DefaultDockerClientConfig; -import com.github.dockerjava.core.DockerClientConfig; -import org.junit.Ignore; +import com.github.dockerjava.api.DockerClient; import org.junit.Test; +import org.testcontainers.DockerClientFactory; + +import java.net.URI; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -11,44 +12,29 @@ public class DockerClientConfigUtilsTest { + DockerClient client = DockerClientFactory.lazyClient(); + @Test public void getDockerHostIpAddressShouldReturnLocalhostWhenUnixSocket() { - DockerClientConfig configuration = DefaultDockerClientConfig.createDefaultConfigBuilder() - .withDockerHost("unix:///var/run/docker.sock") - .withDockerTlsVerify(false) // TODO - check wrt. https://github.com/docker-java/docker-java/issues/588 - .build(); - String actual = DockerClientConfigUtils.getDockerHostIpAddress(configuration); + String actual = DockerClientProviderStrategy.resolveDockerHostIpAddress(client, URI.create("unix:///var/run/docker.sock")); assertEquals("localhost", actual); } - @Test @Ignore - public void getDockerHostIpAddressShouldReturnDockerHostIpWhenHttpUri() { - DockerClientConfig configuration = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerHost("http://12.23.34.45").build(); - String actual = DockerClientConfigUtils.getDockerHostIpAddress(configuration); - assertEquals("12.23.34.45", actual); - } - - @Test @Ignore + @Test public void getDockerHostIpAddressShouldReturnDockerHostIpWhenHttpsUri() { - DockerClientConfig configuration = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerHost("https://12.23.34.45").build(); - String actual = DockerClientConfigUtils.getDockerHostIpAddress(configuration); + String actual = DockerClientProviderStrategy.resolveDockerHostIpAddress(client, URI.create("http://12.23.34.45")); assertEquals("12.23.34.45", actual); } @Test public void getDockerHostIpAddressShouldReturnDockerHostIpWhenTcpUri() { - DockerClientConfig configuration = DefaultDockerClientConfig.createDefaultConfigBuilder() - .withDockerHost("tcp://12.23.34.45") - .withDockerTlsVerify(false) // TODO - check wrt. https://github.com/docker-java/docker-java/issues/588 - .build(); - String actual = DockerClientConfigUtils.getDockerHostIpAddress(configuration); + String actual = DockerClientProviderStrategy.resolveDockerHostIpAddress(client, URI.create("tcp://12.23.34.45")); assertEquals("12.23.34.45", actual); } - @Test @Ignore + @Test public void getDockerHostIpAddressShouldReturnNullWhenUnsupportedUriScheme() { - DockerClientConfig configuration = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerHost("gopher://12.23.34.45").build(); - String actual = DockerClientConfigUtils.getDockerHostIpAddress(configuration); + String actual = DockerClientProviderStrategy.resolveDockerHostIpAddress(client, URI.create("gopher://12.23.34.45")); assertNull(actual); } From e9b2783a3fcbd6e73f168a4d55c1b7acd229511b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 10:25:37 +0000 Subject: [PATCH 06/11] Bump mockito-core from 3.2.0 to 3.2.4 in /modules/junit-jupiter (#2189) Bumps [mockito-core](https://github.com/mockito/mockito) from 3.2.0 to 3.2.4. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v3.2.0...v3.2.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- modules/junit-jupiter/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/junit-jupiter/build.gradle b/modules/junit-jupiter/build.gradle index 6cae8d48a67..18cc5ddfe96 100644 --- a/modules/junit-jupiter/build.gradle +++ b/modules/junit-jupiter/build.gradle @@ -9,7 +9,7 @@ dependencies { testCompile 'com.zaxxer:HikariCP:3.4.1' testCompile 'redis.clients:jedis:3.2.0' testCompile 'org.apache.httpcomponents:httpclient:4.5.10' - testCompile ('org.mockito:mockito-core:3.2.0') { + testCompile ('org.mockito:mockito-core:3.2.4') { exclude(module: 'hamcrest-core') } From 76d4668a40e2b2105fcc877158e520e93ca96137 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 10:47:47 +0000 Subject: [PATCH 07/11] Bump vault-java-driver from 5.0.0 to 5.1.0 in /modules/vault (#2187) Bumps [vault-java-driver](https://github.com/BetterCloud/vault-java-driver) from 5.0.0 to 5.1.0. - [Release notes](https://github.com/BetterCloud/vault-java-driver/releases) - [Commits](https://github.com/BetterCloud/vault-java-driver/commits) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- modules/vault/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vault/build.gradle b/modules/vault/build.gradle index 55249f74fb0..0a68c9310e0 100644 --- a/modules/vault/build.gradle +++ b/modules/vault/build.gradle @@ -3,7 +3,7 @@ description = "Testcontainers :: Vault" dependencies { compile project(':testcontainers') - testCompile 'com.bettercloud:vault-java-driver:5.0.0' + testCompile 'com.bettercloud:vault-java-driver:5.1.0' testCompile 'io.rest-assured:rest-assured:4.1.2' testCompile 'org.assertj:assertj-core:3.14.0' From 2065330f6690c02931f69e1f6ab7717e466e4e55 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 10:47:57 +0000 Subject: [PATCH 08/11] Bump slf4j-api from 1.7.29 to 1.7.30 in /core (#2188) Bumps [slf4j-api](https://github.com/qos-ch/slf4j) from 1.7.29 to 1.7.30. - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](https://github.com/qos-ch/slf4j/compare/v_1.7.29...v_1.7.30) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 8517033e51b..585faedfaa2 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -57,7 +57,7 @@ project.tasks.check.dependsOn(jarFileTest) dependencies { compile 'junit:junit:4.12' - compile 'org.slf4j:slf4j-api:1.7.29' + compile 'org.slf4j:slf4j-api:1.7.30' compile 'org.jetbrains:annotations:17.0.0' compile 'javax.annotation:javax.annotation-api:1.3.2' compile 'org.apache.commons:commons-compress:1.19' From 10114683dfe212c48f1301c96af929363b65dbd8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 10:48:24 +0000 Subject: [PATCH 09/11] Bump mockito-core from 3.2.0 to 3.2.4 in /core (#2186) Bumps [mockito-core](https://github.com/mockito/mockito) from 3.2.0 to 3.2.4. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v3.2.0...v3.2.4) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- core/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/build.gradle b/core/build.gradle index 585faedfaa2..2d76c38c0de 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -109,7 +109,7 @@ dependencies { testCompile 'redis.clients:jedis:3.2.0' testCompile 'com.rabbitmq:amqp-client:5.8.0' testCompile 'org.mongodb:mongo-java-driver:3.12.0' - testCompile ('org.mockito:mockito-core:3.2.0') { + testCompile ('org.mockito:mockito-core:3.2.4') { exclude(module: 'hamcrest-core') } // Synthetic JAR used for MountableFileTest and DirectoryTarResourceTest From e7e05d29a3b733315a2b0e620741e942f3c56fc4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2019 10:48:54 +0000 Subject: [PATCH 10/11] Bump slf4j-api from 1.7.29 to 1.7.30 in /examples (#2190) Bumps [slf4j-api](https://github.com/qos-ch/slf4j) from 1.7.29 to 1.7.30. - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](https://github.com/qos-ch/slf4j/compare/v_1.7.29...v_1.7.30) Signed-off-by: dependabot-preview[bot] Co-authored-by: null <27856297+dependabot-preview[bot]@users.noreply.github.com> --- examples/linked-container/build.gradle | 2 +- examples/redis-backed-cache-testng/build.gradle | 2 +- examples/redis-backed-cache/build.gradle | 2 +- examples/singleton-container/build.gradle | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/linked-container/build.gradle b/examples/linked-container/build.gradle index dc9f7158e29..dea159a89b5 100644 --- a/examples/linked-container/build.gradle +++ b/examples/linked-container/build.gradle @@ -6,7 +6,7 @@ repositories { jcenter() } dependencies { - compileOnly 'org.slf4j:slf4j-api:1.7.29' + compileOnly 'org.slf4j:slf4j-api:1.7.30' implementation 'com.squareup.okhttp3:okhttp:3.14.4' implementation 'org.json:json:20180813' testImplementation 'org.postgresql:postgresql:42.2.9' diff --git a/examples/redis-backed-cache-testng/build.gradle b/examples/redis-backed-cache-testng/build.gradle index 12e78729a28..cf22e89c528 100644 --- a/examples/redis-backed-cache-testng/build.gradle +++ b/examples/redis-backed-cache-testng/build.gradle @@ -7,7 +7,7 @@ repositories { } dependencies { - compileOnly 'org.slf4j:slf4j-api:1.7.29' + compileOnly 'org.slf4j:slf4j-api:1.7.30' implementation 'redis.clients:jedis:3.2.0' implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.google.guava:guava:23.0' diff --git a/examples/redis-backed-cache/build.gradle b/examples/redis-backed-cache/build.gradle index 664a0fac876..b665b9a24a4 100644 --- a/examples/redis-backed-cache/build.gradle +++ b/examples/redis-backed-cache/build.gradle @@ -7,7 +7,7 @@ repositories { } dependencies { - compileOnly 'org.slf4j:slf4j-api:1.7.29' + compileOnly 'org.slf4j:slf4j-api:1.7.30' implementation 'redis.clients:jedis:3.2.0' implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.google.guava:guava:23.0' diff --git a/examples/singleton-container/build.gradle b/examples/singleton-container/build.gradle index 3b4af328379..b06d4e7cb30 100644 --- a/examples/singleton-container/build.gradle +++ b/examples/singleton-container/build.gradle @@ -11,7 +11,7 @@ dependencies { implementation 'redis.clients:jedis:3.2.0' implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.google.guava:guava:23.0' - compileOnly 'org.slf4j:slf4j-api:1.7.29' + compileOnly 'org.slf4j:slf4j-api:1.7.30' testImplementation 'ch.qos.logback:logback-classic:1.2.3' testImplementation 'org.testcontainers:testcontainers' From 08234f88a3c3f460db4684da683378d8bf4d026c Mon Sep 17 00:00:00 2001 From: William Delanoue Date: Mon, 23 Dec 2019 03:39:08 +0100 Subject: [PATCH 11/11] closes #1697: add vhost parameter for policies (#1701) --- .../containers/RabbitMQContainer.java | 9 +++++ .../containers/RabbitMQContainerTest.java | 35 +++++++++++-------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java b/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java index ea25bf629e6..ede111ed2d8 100644 --- a/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java +++ b/modules/rabbitmq/src/main/java/org/testcontainers/containers/RabbitMQContainer.java @@ -263,6 +263,15 @@ public RabbitMQContainer withPolicy(String name, String pattern, Map definition) { + values.add(asList("rabbitmqadmin", "declare", "policy", + "--vhost=" + vhost, + "name=" + name, + "pattern=" + pattern, + "definition=" + toJson(definition))); + return self(); + } + public RabbitMQContainer withPolicy(String name, String pattern, Map definition, int priority, String applyTo) { values.add(asList("rabbitmqadmin", "declare", "policy", "name=" + name, diff --git a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java index bdda594818f..5822e213a82 100644 --- a/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java +++ b/modules/rabbitmq/src/test/java/org/testcontainers/containers/RabbitMQContainerTest.java @@ -154,21 +154,22 @@ public void shouldStartTheWholeEnchilada() throws IOException, InterruptedExcept { try (RabbitMQContainer container = new RabbitMQContainer()) { container - .withVhost("vhost1") - .withVhostLimit("vhost1", "max-connections", 1) - .withVhost("vhost2", true) - .withExchange("direct-exchange", "direct") - .withExchange("topic-exchange", "topic") - .withQueue("queue1") - .withQueue("queue2", true, false, ImmutableMap.of("x-message-ttl", 1000)) - .withBinding("direct-exchange", "queue1") - .withUser("user1", "password1") - .withUser("user2", "password2", ImmutableSet.of("administrator")) - .withPermission("vhost1", "user1", ".*", ".*", ".*") - .withPolicy("max length policy", "^dog", ImmutableMap.of("max-length", 1), 1, "queues") - .withPolicy("alternate exchange policy", "^direct-exchange", ImmutableMap.of("alternate-exchange", "amq.direct")) - .withOperatorPolicy("operator policy 1", "^queue1", ImmutableMap.of("message-ttl", 1000), 1, "queues") - .withPluginsEnabled("rabbitmq_shovel", "rabbitmq_random_exchange"); + .withVhost("vhost1") + .withVhostLimit("vhost1", "max-connections", 1) + .withVhost("vhost2", true) + .withExchange("direct-exchange", "direct") + .withExchange("topic-exchange", "topic") + .withQueue("queue1") + .withQueue("queue2", true, false, ImmutableMap.of("x-message-ttl", 1000)) + .withBinding("direct-exchange", "queue1") + .withUser("user1", "password1") + .withUser("user2", "password2", ImmutableSet.of("administrator")) + .withPermission("vhost1", "user1", ".*", ".*", ".*") + .withPolicy("max length policy", "^dog", ImmutableMap.of("max-length", 1), 1, "queues") + .withPolicy("alternate exchange policy", "^direct-exchange", ImmutableMap.of("alternate-exchange", "amq.direct")) + .withPolicy("vhost2", "ha-all", ".*", ImmutableMap.of("ha-mode", "all", "ha-sync-mode", "automatic")) + .withOperatorPolicy("operator policy 1", "^queue1", ImmutableMap.of("message-ttl", 1000), 1, "queues") + .withPluginsEnabled("rabbitmq_shovel", "rabbitmq_random_exchange"); container.start(); @@ -192,6 +193,10 @@ public void shouldStartTheWholeEnchilada() throws IOException, InterruptedExcept .getStdout()) .contains("max length policy", "alternate exchange policy"); + assertThat(container.execInContainer("rabbitmqadmin", "list", "policies", "--vhost=vhost2") + .getStdout()) + .contains("ha-all", "ha-sync-mode"); + assertThat(container.execInContainer("rabbitmqadmin", "list", "operator_policies") .getStdout()) .contains("operator policy 1");