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 ad...@apache.org on 2017/12/05 07:30:50 UTC

[10/19] james-project git commit: JAMES-2242 Memory mail queue should preserve state

JAMES-2242 Memory mail queue should preserve state


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/be236f0d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/be236f0d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/be236f0d

Branch: refs/heads/master
Commit: be236f0da099e37f39f043632981fb7b86ef0657
Parents: 775de66
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 29 15:19:20 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Dec 4 14:42:18 2017 +0100

----------------------------------------------------------------------
 .../modules/server/MemoryMailQueueFactory.java    |  3 ++-
 .../james/server/MemoryMailQueueFactoryTest.java  | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/be236f0d/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueFactory.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueFactory.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueFactory.java
index 8fcc941..5918d5b 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueFactory.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueFactory.java
@@ -27,10 +27,10 @@ import java.util.concurrent.TimeUnit;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.james.server.core.MailImpl;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
+import org.apache.james.server.core.MailImpl;
 import org.apache.mailet.Mail;
 
 import com.github.fge.lambdas.Throwing;
@@ -88,6 +88,7 @@ public class MemoryMailQueueFactory implements MailQueueFactory {
 
         private Mail cloneMail(Mail mail) throws MessagingException {
             MailImpl mailImpl = MailImpl.duplicate(mail);
+            mailImpl.setState(mail.getState());
             Optional.ofNullable(mail.getMessage())
                     .ifPresent(Throwing.consumer(message -> mailImpl.setMessage(new MimeMessage(message))));
             return mailImpl;

http://git-wip-us.apache.org/repos/asf/james-project/blob/be236f0d/server/container/guice/memory-guice/src/test/java/org/apache/james/server/MemoryMailQueueFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/server/MemoryMailQueueFactoryTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/server/MemoryMailQueueFactoryTest.java
index eaf22b8..62357bb 100644
--- a/server/container/guice/memory-guice/src/test/java/org/apache/james/server/MemoryMailQueueFactoryTest.java
+++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/server/MemoryMailQueueFactoryTest.java
@@ -97,6 +97,24 @@ public class MemoryMailQueueFactoryTest {
     }
 
     @Test
+    public void dequeueShouldPreserveState() throws Exception{
+        String state = "state";
+        Mail mail = FakeMail.builder()
+                .name(NAME_1)
+                .state(state)
+                .build();
+        memoryMailQueueFactory.getQueue(KEY).enQueue(mail);
+
+        String newState = memoryMailQueueFactory
+            .getQueue(KEY)
+            .deQueue()
+            .getMail()
+            .getState();
+
+        assertThat(newState).isEqualTo(state);
+    }
+
+    @Test
     public void dequeueShouldWorkWithMultipleMessages() throws Exception{
         Mail mail1 = FakeMail.builder()
                 .name(NAME_1)


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