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:01 UTC

[08/16] james-project git commit: MAILBOX-357 Use functional paradigm in ListeningSearchIndex

MAILBOX-357 Use functional paradigm in ListeningSearchIndex


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

Branch: refs/heads/master
Commit: 205f8178a6f84b0cefa08c127e4b43d51d0a900d
Parents: 2ef26a7
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Dec 11 09:02:09 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 12 17:50:58 2018 +0700

----------------------------------------------------------------------
 .../store/search/ListeningMessageSearchIndex.java   | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/205f8178/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 e02b736..e11dc86 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
@@ -19,7 +19,7 @@
 package org.apache.james.mailbox.store.search;
 
 import java.util.List;
-import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.apache.james.mailbox.Event;
 import org.apache.james.mailbox.MailboxListener;
@@ -69,10 +69,10 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
                 if (event instanceof Added) {
                     Added added = (Added) event;
 
-                    for (MessageUid uid : added.getUids()) {
-                        retrieveMailboxMessage(session, mailbox, uid)
-                            .ifPresent(mailboxMessage -> addMessage(session, mailbox, mailboxMessage));
-                    }
+                    added.getUids()
+                        .stream()
+                        .flatMap(uid -> retrieveMailboxMessage(session, mailbox, uid))
+                        .forEach(mailboxMessage -> addMessage(session, mailbox, mailboxMessage));
                 } else if (event instanceof Expunged) {
                     Expunged expunged = (Expunged) event;
                     try {
@@ -97,14 +97,14 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
         }
     }
 
-    private Optional<MailboxMessage> retrieveMailboxMessage(MailboxSession session, Mailbox mailbox, MessageUid uid) {
+    private Stream<MailboxMessage> retrieveMailboxMessage(MailboxSession session, Mailbox mailbox, MessageUid uid) {
         try {
-            return Optional.of(factory.getMessageMapper(session)
+            return Stream.of(factory.getMessageMapper(session)
                 .findInMailbox(mailbox, MessageRange.one(uid), FetchType.Full, UNLIMITED)
                 .next());
         } catch (Exception e) {
             LOGGER.error("Could not retrieve message {} in mailbox {}", uid.asLong(), mailbox.getMailboxId().serialize(), e);
-            return Optional.empty();
+            return Stream.empty();
         }
     }
 


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