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 bt...@apache.org on 2018/06/19 08:11:34 UTC

[06/11] james-project git commit: JAMES-2414 Copy dispatched message

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 <bt...@linagora.com>
Authored: Thu Jun 14 15:54:17 2018 +0700
Committer: benwa <bt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org