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

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

commit 6c20dff5a87926ba0657fec8a185c925ce000c26
Author: Matthieu Baechler <matth...@apache.org>
AuthorDate: Fri Feb 15 15:15:34 2019 +0100

    JAMES-2816 Avoid copying the whole message when we only need to copy 
metadata
---
 mailbox/memory/src/test/resources/test.eml                  |  0
 .../mailbox/spamassassin/SpamAssassinListenerTest.java      |  4 ++--
 .../apache/james/mailbox/store/StoreMessageIdManager.java   |  2 +-
 .../org/apache/james/mailbox/store/StoreMessageManager.java | 13 ++-----------
 .../org/apache/james/mailbox/store/event/EventFactory.java  |  4 ----
 .../james/mailbox/store/MessageIdManagerTestSystem.java     |  2 +-
 6 files changed, 6 insertions(+), 19 deletions(-)

diff --git a/mailbox/memory/src/test/resources/test.eml 
b/mailbox/memory/src/test/resources/test.eml
new file mode 100644
index 0000000..e69de29
diff --git 
a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
 
b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
index 36922be..72d8b39 100644
--- 
a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
+++ 
b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
@@ -241,7 +241,7 @@ public class SpamAssassinListenerTest {
             .randomEventId()
             .mailboxSession(MAILBOX_SESSION)
             .mailbox(inbox)
-            .addMessage(message)
+            .addMetaData(message.metaData())
             .build();
 
         listener.event(addedEvent);
@@ -257,7 +257,7 @@ public class SpamAssassinListenerTest {
             .randomEventId()
             .mailboxSession(MAILBOX_SESSION)
             .mailbox(mailbox1)
-            .addMessage(message)
+            .addMetaData(message.metaData())
             .build();
 
         listener.event(addedEvent);
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 1b28585..20a5b0f 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -395,7 +395,7 @@ public class StoreMessageIdManager implements 
MessageIdManager {
                 .randomEventId()
                 .mailboxSession(mailboxSession)
                 .mailbox(mailboxMapper.findMailboxById(mailboxId))
-                .addMessage(copy)
+                .addMetaData(copy.metaData())
                 .build(),
                 new MailboxIdRegistrationKey(mailboxId))
                 .block();
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 5d63d3b..8c32c55 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
@@ -451,12 +451,12 @@ public class StoreMessageManager implements 
MessageManager {
                         MessageMetaData data = appendMessageToStore(message, 
attachments, mailboxSession);
 
                         Mailbox mailbox = getMailboxEntity();
-                        MailboxMessage copy = copyMessage(message);
+
                         eventBus.dispatch(EventFactory.added()
                             .randomEventId()
                             .mailboxSession(mailboxSession)
                             .mailbox(mailbox)
-                            .addMessage(copy)
+                            .addMetaData(message.metaData())
                             .build(),
                             new 
MailboxIdRegistrationKey(mailbox.getMailboxId()))
                             .block();
@@ -500,15 +500,6 @@ public class StoreMessageManager implements MessageManager 
{
         return new SimpleMailboxMessage(messageIdFactory.generate(), 
internalDate, size, bodyStartOctet, content, flags, propertyBuilder, 
getMailboxEntity().getMailboxId(), attachments);
     }
 
-    private MailboxMessage copyMessage(MailboxMessage message) throws 
MailboxException {
-        return SimpleMailboxMessage
-            .from(message)
-            .mailboxId(message.getMailboxId())
-            .uid(message.getUid())
-            .modseq(message.getModSeq())
-            .build();
-    }
-
     @Override
     public boolean isWriteable(MailboxSession session) throws MailboxException 
{
         return storeRightManager.isReadWrite(session, mailbox, 
getSharedPermanentFlags(session));
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
index efd3146..28969e8 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java
@@ -111,10 +111,6 @@ public class EventFactory {
             return metaData(ImmutableSortedMap.of(metaData.getUid(), 
metaData));
         }
 
-        default T addMessage(MailboxMessage message) {
-            return addMetaData(message.metaData());
-        }
-
         default T addMetaData(Iterable<MessageMetaData> metaData) {
             return metaData(ImmutableList.copyOf(metaData)
                 .stream()
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
index 61d5b57..a0f56d2 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
@@ -87,7 +87,7 @@ public class MessageIdManagerTestSystem {
                 .randomEventId()
                 .mailboxSession(mailboxSession)
                 .mailbox(mailbox)
-                .addMessage(message)
+                .addMetaData(message.metaData())
                 .build(),
                 new MailboxIdRegistrationKey(mailboxId))
             .block();


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

Reply via email to