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/12 10:52:05 UTC

[12/16] james-project git commit: MAILBOX-357 Group messages by ranges when retrieving them in MailboxListener

MAILBOX-357 Group messages by ranges when retrieving them in MailboxListener


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

Branch: refs/heads/master
Commit: 8051692fecc111962e4e733b5cad87f6125fffe6
Parents: 2dab033
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Dec 12 09:12:03 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 12 17:50:58 2018 +0700

----------------------------------------------------------------------
 .../james/mailbox/spamassassin/SpamAssassinListener.java | 11 +++++------
 .../store/search/ListeningMessageSearchIndex.java        | 10 +++++-----
 2 files changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8051692f/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
----------------------------------------------------------------------
diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
index 0c2ea77..3c5e937 100644
--- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
+++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java
@@ -27,7 +27,6 @@ import javax.inject.Inject;
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.Role;
 import org.apache.james.mailbox.SystemMailboxesProvider;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -99,9 +98,9 @@ public class SpamAssassinListener implements SpamEventListener {
             Mailbox mailbox = mapperFactory.getMailboxMapper(session).findMailboxById(addedEvent.getMailboxId());
             MessageMapper messageMapper = mapperFactory.getMessageMapper(session);
 
-            List<InputStream> contents = addedEvent.getUids()
+            List<InputStream> contents = MessageRange.toRanges(addedEvent.getUids())
                 .stream()
-                .flatMap(uid -> retrieveMessage(messageMapper, mailbox, uid))
+                .flatMap(range -> retrieveMessages(messageMapper, mailbox, range))
                 .map(Throwing.function(MailboxMessage::getFullContent))
                 .collect(Guavate.toImmutableList());
             spamAssassin.learnHam(contents, event.getUser());
@@ -120,11 +119,11 @@ public class SpamAssassinListener implements SpamEventListener {
         }
     }
 
-    private Stream<MailboxMessage> retrieveMessage(MessageMapper messageMapper, Mailbox mailbox, MessageUid uid) {
+    private Stream<MailboxMessage> retrieveMessages(MessageMapper messageMapper, Mailbox mailbox, MessageRange range) {
         try {
-            return Iterators.toStream(messageMapper.findInMailbox(mailbox, MessageRange.one(uid), MessageMapper.FetchType.Full, LIMIT));
+            return Iterators.toStream(messageMapper.findInMailbox(mailbox, range, MessageMapper.FetchType.Full, LIMIT));
         } catch (MailboxException e) {
-            LOGGER.warn("Can not retrieve message {} {}", mailbox.getMailboxId(), uid.asLong(), e);
+            LOGGER.warn("Can not retrieve message {} {}", mailbox.getMailboxId(), range.toString(), e);
             return Stream.empty();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8051692f/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index 7de8fcc..3adaf38 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -102,19 +102,19 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
     }
 
     private void handleAdded(MailboxSession session, Mailbox mailbox, Added added) {
-        added.getUids()
+        MessageRange.toRanges(added.getUids())
             .stream()
-            .flatMap(uid -> retrieveMailboxMessage(session, mailbox, uid))
+            .flatMap(range -> retrieveMailboxMessages(session, mailbox, range))
             .forEach(mailboxMessage -> addMessage(session, mailbox, mailboxMessage));
     }
 
-    private Stream<MailboxMessage> retrieveMailboxMessage(MailboxSession session, Mailbox mailbox, MessageUid uid) {
+    private Stream<MailboxMessage> retrieveMailboxMessages(MailboxSession session, Mailbox mailbox, MessageRange range) {
         try {
             return Stream.of(factory.getMessageMapper(session)
-                .findInMailbox(mailbox, MessageRange.one(uid), FetchType.Full, UNLIMITED)
+                .findInMailbox(mailbox, range, FetchType.Full, UNLIMITED)
                 .next());
         } catch (Exception e) {
-            LOGGER.error("Could not retrieve message {} in mailbox {}", uid.asLong(), mailbox.getMailboxId().serialize(), e);
+            LOGGER.error("Could not retrieve message {} in mailbox {}", range.toString(), mailbox.getMailboxId().serialize(), e);
             return Stream.empty();
         }
     }


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