JAMES-2414 Copy dispatched message

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

Branch: refs/heads/master
Commit: fe224885f06a3e9a63edaac20ddfd0cce7099016
Parents: 32ed4d8
Author: benwa <[email protected]>
Authored: Thu Jun 14 15:54:17 2018 +0700
Committer: benwa <[email protected]>
Committed: Tue Jun 19 15:09:28 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/cassandra/CassandraMessageManager.java  |  9 +++++++++
 .../james/mailbox/inmemory/InMemoryMessageManager.java    |  9 +++++++++
 .../apache/james/mailbox/store/StoreMessageManager.java   | 10 +++++++++-
 3 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/fe224885/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
index 31e7c17..09b773c 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMessageManager.java
@@ -38,6 +38,7 @@ import 
org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 
 import com.github.steveash.guavate.Guavate;
@@ -80,4 +81,12 @@ public class CassandraMessageManager extends 
StoreMessageManager {
                     .collect(Guavate.toImmutableList()),
                 message.getMessageId());
     }
+
+    @Override
+    protected MailboxMessage copyMessage(MailboxMessage message) throws 
MailboxException {
+        SimpleMailboxMessage copy = 
SimpleMailboxMessage.copy(message.getMailboxId(), message);
+        copy.setUid(message.getUid());
+        copy.setModSeq(message.getModSeq());
+        return copy;
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/fe224885/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
index 21b9479..458e97d 100644
--- 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java
@@ -20,6 +20,7 @@ import 
org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.mailbox.store.search.MessageSearchIndex;
 
 import com.github.steveash.guavate.Guavate;
@@ -61,4 +62,12 @@ public class InMemoryMessageManager extends 
StoreMessageManager {
                     .collect(Guavate.toImmutableList()),
                 message.getMessageId());
     }
+
+    @Override
+    protected MailboxMessage copyMessage(MailboxMessage message) throws 
MailboxException {
+        SimpleMailboxMessage copy = 
SimpleMailboxMessage.copy(message.getMailboxId(), message);
+        copy.setUid(message.getUid());
+        copy.setModSeq(message.getModSeq());
+        return copy;
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/fe224885/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index 84bc92f..af19c66 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -419,7 +419,8 @@ public class StoreMessageManager implements 
org.apache.james.mailbox.MessageMana
                 MessageMetaData data = appendMessageToStore(message, 
attachments, mailboxSession);
 
                 Mailbox mailbox = getMailboxEntity();
-                dispatcher.added(mailboxSession, mailbox, message);
+                MailboxMessage copy = copyMessage(message);
+                dispatcher.added(mailboxSession, mailbox, copy);
                 return new ComposedMessageId(mailbox.getMailboxId(), 
data.getMessageId(), data.getUid());
             }, true);
 
@@ -464,6 +465,13 @@ public class StoreMessageManager implements 
org.apache.james.mailbox.MessageMana
         return new SimpleMailboxMessage(messageIdFactory.generate(), 
internalDate, size, bodyStartOctet, content, flags, propertyBuilder, 
getMailboxEntity().getMailboxId(), attachments);
     }
 
+    protected MailboxMessage copyMessage(MailboxMessage message) throws 
MailboxException {
+        SimpleMailboxMessage copy = 
SimpleMailboxMessage.copyWithoutAttachments(message.getMailboxId(), message);
+        copy.setUid(message.getUid());
+        copy.setModSeq(message.getModSeq());
+        return copy;
+    }
+
     @Override
     public boolean isWriteable(MailboxSession session) throws MailboxException 
{
         return storeRightManager.isReadWrite(session, mailbox, 
getSharedPermanentFlags(session));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to