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/12/19 04:10:36 UTC

[10/13] james-project git commit: MAILBOX-359 Remove MailMessage constructor of SimpleMessageMetaData

MAILBOX-359 Remove MailMessage constructor of SimpleMessageMetaData


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

Branch: refs/heads/master
Commit: ecb6258c479cf06c60016d81874664b5653b61d6
Parents: 1c3c3e5
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 10:54:24 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 19 10:58:07 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/cassandra/mail/CassandraMessageMapper.java  | 7 +++----
 .../org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java   | 7 +++----
 .../james/mailbox/maildir/mail/MaildirMessageMapper.java      | 5 ++---
 .../james/mailbox/inmemory/mail/InMemoryMessageMapper.java    | 5 ++---
 .../james/mailbox/spamassassin/SpamAssassinListenerTest.java  | 5 ++---
 .../org/apache/james/mailbox/store/SimpleMessageMetaData.java | 5 -----
 .../org/apache/james/mailbox/store/StoreMessageIdManager.java | 4 ++--
 .../org/apache/james/mailbox/store/StoreMessageManager.java   | 2 +-
 .../james/mailbox/store/event/MailboxEventDispatcher.java     | 3 +--
 .../apache/james/mailbox/store/mail/model/MailboxMessage.java | 2 +-
 .../james/mailbox/store/MessageIdManagerTestSystem.java       | 2 +-
 11 files changed, 18 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 300e7ef..59d9a1e 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -47,7 +47,6 @@ import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.FlagsUpdateCalculator;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -210,7 +209,7 @@ public class CassandraMessageMapper implements MessageMapper {
             .collect(JamesCollectors.chunker(cassandraConfiguration.getExpungeChunkSize()))
             .map(uidChunk -> expungeUidChunk(mailboxId, uidChunk))
             .flatMap(CompletableFuture::join)
-            .collect(Guavate.toImmutableMap(MailboxMessage::getUid, SimpleMessageMetaData::new));
+            .collect(Guavate.toImmutableMap(MailboxMessage::getUid, MailboxMessage::metaData));
     }
 
     private CompletableFuture<Stream<SimpleMailboxMessage>> expungeUidChunk(CassandraId mailboxId, Collection<MessageUid> uidChunk) {
@@ -260,7 +259,7 @@ public class CassandraMessageMapper implements MessageMapper {
         save(mailbox, addUidAndModseq(message, mailboxId))
             .thenCompose(voidValue -> indexTableHandler.updateIndexOnAdd(message, mailboxId))
             .join();
-        return new SimpleMessageMetaData(message);
+        return message.metaData();
     }
 
     private MailboxMessage addUidAndModseq(MailboxMessage message, CassandraId mailboxId) throws MailboxException {
@@ -372,7 +371,7 @@ public class CassandraMessageMapper implements MessageMapper {
         insertIds(addUidAndModseq(message, mailboxId), mailboxId)
                 .thenCompose(voidValue -> indexTableHandler.updateIndexOnAdd(message, mailboxId))
                 .join();
-        return new SimpleMessageMetaData(message);
+        return message.metaData();
     }
 
     private CompletableFuture<Void> save(Mailbox mailbox, MailboxMessage message) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
index 88ffb5a..a42f7bb 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
@@ -45,7 +45,6 @@ import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageRange.Type;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.FlagsUpdateCalculator;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.MessageUtils;
 import org.apache.james.mailbox.store.mail.MessageUtils.MessageChangedFlags;
@@ -322,12 +321,12 @@ public class JPAMessageMapper extends JPATransactionalMapper implements MessageM
                 ((AbstractJPAMailboxMessage) message).setMailbox(currentMailbox);
 
                 getEntityManager().persist(message);
-                return new SimpleMessageMetaData(message);
+                return message.metaData();
             } else {
                 JPAMailboxMessage persistData = new JPAMailboxMessage(currentMailbox, message.getUid(), message.getModSeq(), message);
                 persistData.setFlags(message.createFlags());
                 getEntityManager().persist(persistData);
-                return new SimpleMessageMetaData(persistData);
+                return persistData.metaData();
             }
 
         } catch (PersistenceException | ArgumentException e) {
@@ -381,7 +380,7 @@ public class JPAMessageMapper extends JPATransactionalMapper implements MessageM
     private Map<MessageUid, MessageMetaData> createMetaData(List<MailboxMessage> uids) {
         final Map<MessageUid, MessageMetaData> data = new HashMap<>();
         for (MailboxMessage m : uids) {
-            data.put(m.getUid(), new SimpleMessageMetaData(m));
+            data.put(m.getUid(), m.metaData());
         }
         return data;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
index 2bd14db..d7e916a 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
@@ -47,7 +47,6 @@ import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageRange.Type;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.FlagsUpdateCalculator;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.mail.AbstractMessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -234,7 +233,7 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
         Map<MessageUid, MessageMetaData> uids = new HashMap<>();
         for (MailboxMessage m : results) {
             MessageUid uid = m.getUid();
-            uids.put(uid, new SimpleMessageMetaData(m));
+            uids.put(uid, m.metaData());
             delete(mailbox, m);
         }
 
@@ -312,7 +311,7 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
             uid = folder.appendMessage(mailboxSession, newMessageFile.getName());
             message.setUid(uid);
             message.setModSeq(newMessageFile.lastModified());
-            return new SimpleMessageMetaData(message);
+            return message.metaData();
         } catch (MailboxException e) {
             throw new MailboxException("Failure while save MailboxMessage " + message + " in Mailbox " + mailbox, e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
index a31b931..edcd7ae 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
@@ -36,7 +36,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
 import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageRange;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.mail.AbstractMessageMapper;
 import org.apache.james.mailbox.store.mail.ModSeqProvider;
 import org.apache.james.mailbox.store.mail.UidProvider;
@@ -145,7 +144,7 @@ public class InMemoryMessageMapper extends AbstractMessageMapper {
         while (it.hasNext()) {
             MailboxMessage member = it.next();
             if (member.isDeleted()) {
-                filteredResult.put(member.getUid(), new SimpleMessageMetaData(member));
+                filteredResult.put(member.getUid(), member.metaData());
 
                 delete(mailbox, member);
             }
@@ -189,7 +188,7 @@ public class InMemoryMessageMapper extends AbstractMessageMapper {
         copy.setModSeq(message.getModSeq());
         getMembershipByUidForMailbox(mailbox).put(message.getUid(), copy);
 
-        return new SimpleMessageMetaData(message);
+        return message.metaData();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java
----------------------------------------------------------------------
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 dba49a6..0496ac5 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
@@ -47,7 +47,6 @@ import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.TestMessageId;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.SystemMailboxesProviderImpl;
 import org.apache.james.mailbox.store.event.EventFactory;
@@ -238,7 +237,7 @@ public class SpamAssassinListenerTest {
     public void eventShouldCallSpamAssassinHamLearningWhenTheMessageIsAddedInInbox() throws Exception {
         SimpleMailboxMessage message = createMessage(inbox);
 
-        ImmutableSortedMap<MessageUid, MessageMetaData> sortedMap = ImmutableSortedMap.of(UID, new SimpleMessageMetaData(message));
+        ImmutableSortedMap<MessageUid, MessageMetaData> sortedMap = ImmutableSortedMap.of(UID, message.metaData());
         MailboxListener.Added addedEvent = new EventFactory().added(
                 MAILBOX_SESSION, sortedMap, inbox);
 
@@ -253,7 +252,7 @@ public class SpamAssassinListenerTest {
 
         MailboxListener.Added addedEvent = new EventFactory().added(
             MAILBOX_SESSION,
-            ImmutableSortedMap.of(UID, new SimpleMessageMetaData(message)),
+            ImmutableSortedMap.of(UID, message.metaData()),
             mailbox1);
 
         listener.event(addedEvent);

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
index ae1566f..61e2f54 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
@@ -26,7 +26,6 @@ import javax.mail.Flags;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageMetaData;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 
 import com.google.common.base.Objects;
 
@@ -48,10 +47,6 @@ public class SimpleMessageMetaData implements MessageMetaData {
         this.messageId = messageId;
     }
     
-    public SimpleMessageMetaData(MailboxMessage message) {
-        this(message.getUid(), message.getModSeq(), message.createFlags(), message.getFullContentOctets(), message.getInternalDate(), message.getMessageId());
-    }
-    
     @Override
     public Flags getFlags() {
         return flags;

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
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 23db5b5..907d675 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
@@ -86,7 +86,7 @@ public class StoreMessageIdManager implements MessageIdManager {
     }
 
     private static MetadataWithMailboxId toMetadataWithMailboxId(MailboxMessage message) {
-        return new MetadataWithMailboxId(new SimpleMessageMetaData(message), message.getMailboxId());
+        return new MetadataWithMailboxId(message.metaData(), message.getMailboxId());
     }
 
     public static ImmutableSet<MailboxId> toMailboxIds(List<MailboxMessage> mailboxMessages) {
@@ -286,7 +286,7 @@ public class StoreMessageIdManager implements MessageIdManager {
     private void removeMessageFromMailboxes(MailboxMessage message, Set<MailboxId> mailboxesToRemove, MailboxSession mailboxSession) throws MailboxException {
         MessageIdMapper messageIdMapper = mailboxSessionMapperFactory.getMessageIdMapper(mailboxSession);
         MailboxMapper mailboxMapper = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession);
-        SimpleMessageMetaData eventPayload = new SimpleMessageMetaData(message);
+        MessageMetaData eventPayload = message.metaData();
 
         for (MailboxId mailboxId: mailboxesToRemove) {
             messageIdMapper.delete(message.getMessageId(), mailboxesToRemove);

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/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 58f0d08..76595af 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
@@ -720,7 +720,7 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
 
         while (originalRows.hasNext()) {
             final MailboxMessage originalMessage = originalRows.next();
-            originalRowsCopy.add(new SimpleMessageMetaData(originalMessage));
+            originalRowsCopy.add(originalMessage.metaData());
             MessageMetaData data = messageMapper.execute(
                 () -> messageMapper.move(getMailboxEntity(), originalMessage));
             movedRows.add(data);

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
index 1ebe27e..139c807 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java
@@ -44,7 +44,6 @@ import org.apache.james.mailbox.model.MessageMoves;
 import org.apache.james.mailbox.model.Quota;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.model.UpdatedFlags;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 
@@ -89,7 +88,7 @@ public class MailboxEventDispatcher {
     }
 
     public void added(MailboxSession session, Mailbox mailbox, MailboxMessage mailboxMessage) {
-        SimpleMessageMetaData messageMetaData = new SimpleMessageMetaData(mailboxMessage);
+        MessageMetaData messageMetaData = mailboxMessage.metaData();
         SortedMap<MessageUid, MessageMetaData> metaDataMap = ImmutableSortedMap.<MessageUid, MessageMetaData>naturalOrder()
                 .put(messageMetaData.getUid(), messageMetaData)
                 .build();

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
index e9e13ad..2842356 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
@@ -129,7 +129,7 @@ public interface MailboxMessage extends Message, Comparable<MailboxMessage> {
     Flags createFlags();
 
     default MessageMetaData metaData() {
-        return new SimpleMessageMetaData(this);
+        return new SimpleMessageMetaData(getUid(), getModSeq(), createFlags(), getFullContentOctets(), getInternalDate(), getMessageId());
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecb6258c/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
----------------------------------------------------------------------
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 21de9e1..f195e92 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
@@ -81,7 +81,7 @@ public class MessageIdManagerTestSystem {
             Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
             MailboxMessage message = createMessage(mailboxId, flags, messageId, uid);
             mapperFactory.getMessageMapper(mailboxSession).add(mailbox, message);
-            mailboxManager.getEventDispatcher().added(mailboxSession, new SimpleMessageMetaData(message), mailbox);
+            mailboxManager.getEventDispatcher().added(mailboxSession, message.metaData(), mailbox);
             return messageId;
         } catch (Exception e) {
             throw new RuntimeException(e);


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