You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2019/06/28 07:56:43 UTC

[james-project] 01/07: JAMES-2792 log james container output for deployment tests

This is an automated email from the ASF dual-hosted git repository.

matthieu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 22fa06f6ac01c789bfa5298300571214b829e166
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Mon Jun 17 16:48:58 2019 +0200

    JAMES-2792 log james container output for deployment tests
---
 .../mpt/imapmailbox/external/james/DockerJamesRule.java    | 14 +++++++++++++-
 .../apache/james/util/docker/DockerGenericContainer.java   |  7 +++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerJamesRule.java b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerJamesRule.java
index 1ff4709..48128e6 100644
--- a/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerJamesRule.java
+++ b/mpt/impl/imap-mailbox/external-james/src/test/java/org/apache/james/mpt/imapmailbox/external/james/DockerJamesRule.java
@@ -29,10 +29,14 @@ import org.apache.james.util.docker.DockerGenericContainer;
 import org.junit.rules.TestRule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
 
 public class DockerJamesRule implements TestRule {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(DockerJamesRule.class);
+
     private static final int IMAP_PORT = 143;
     private static final int SMTP_PORT = 587;
     private static final int WEBADMIN_PORT = 8000;
@@ -42,7 +46,15 @@ public class DockerJamesRule implements TestRule {
     public DockerJamesRule(String image) {
         container = new DockerGenericContainer(image)
             .withExposedPorts(SMTP_PORT, IMAP_PORT)
-            .waitingFor(new HostPortWaitStrategy());
+            .waitingFor(new HostPortWaitStrategy())
+            .withLogConsumer(frame -> {
+                switch (frame.getType()) {
+                    case STDOUT:
+                        LOGGER.info(frame.getUtf8String());
+                    case STDERR:
+                        LOGGER.error(frame.getUtf8String());
+                }
+            });
     }
 
     public ProvisioningAPI cliJarDomainsAndUsersAdder() throws InterruptedException, ProvisioningException, IOException {
diff --git a/server/testing/src/main/java/org/apache/james/util/docker/DockerGenericContainer.java b/server/testing/src/main/java/org/apache/james/util/docker/DockerGenericContainer.java
index 46b1de8..3e6847d 100644
--- a/server/testing/src/main/java/org/apache/james/util/docker/DockerGenericContainer.java
+++ b/server/testing/src/main/java/org/apache/james/util/docker/DockerGenericContainer.java
@@ -24,6 +24,7 @@ import java.net.Socket;
 import java.time.Duration;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Consumer;
 
 import javax.net.SocketFactory;
 
@@ -36,6 +37,7 @@ import org.slf4j.LoggerFactory;
 import org.testcontainers.DockerClientFactory;
 import org.testcontainers.containers.Container;
 import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.output.OutputFrame;
 import org.testcontainers.containers.wait.strategy.WaitStrategy;
 import org.testcontainers.images.builder.ImageFromDockerfile;
 
@@ -86,6 +88,11 @@ public class DockerGenericContainer implements TestRule {
         return this;
     }
 
+    public DockerGenericContainer withLogConsumer(Consumer<OutputFrame> consumer) {
+        container.withLogConsumer(consumer);
+        return this;
+    }
+
     public DockerGenericContainer withEnv(String key, String value) {
         container.addEnv(key, value);
         return this;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org