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]
