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:08 UTC
[15/16] james-project git commit: MAILBOX-357 Use method extraction
to make ListeningMessageSearchIndex more readable
MAILBOX-357 Use method extraction to make ListeningMessageSearchIndex more readable
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/0e01d39c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/0e01d39c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/0e01d39c
Branch: refs/heads/master
Commit: 0e01d39cbd476bdf8c1b82c4cd5ba11cd974f1b7
Parents: 205f817
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Dec 11 10:09:05 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 12 17:50:58 2018 +0700
----------------------------------------------------------------------
.../search/ListeningMessageSearchIndex.java | 69 ++++++++++++--------
1 file changed, 40 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/0e01d39c/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 e11dc86..7de8fcc 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
@@ -61,42 +61,53 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
@Override
public void event(Event event) {
try {
- MailboxSession session = mailboxManager.createSystemSession(event.getUser().asString());
if (event instanceof MailboxEvent) {
- MailboxEvent mailboxEvent = (MailboxEvent) event;
- Mailbox mailbox = factory.getMailboxMapper(session).findMailboxById(mailboxEvent.getMailboxId());
-
- if (event instanceof Added) {
- Added added = (Added) event;
-
- 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 {
- delete(session, mailbox, expunged.getUids());
- } catch (MailboxException e) {
- LOGGER.error("Unable to deleted messages {} from index for mailbox {}", expunged.getUids(), mailbox, e);
- }
- } else if (event instanceof FlagsUpdated) {
- FlagsUpdated flagsUpdated = (FlagsUpdated) event;
-
- try {
- update(session, mailbox, flagsUpdated.getUpdatedFlags());
- } catch (MailboxException e) {
- LOGGER.error("Unable to update flags in index for mailbox {}", mailbox, e);
- }
- } else if (event instanceof MailboxDeletion) {
- deleteAll(session, mailbox);
- }
+ handleMailboxEvent(event,
+ mailboxManager.createSystemSession(event.getUser().asString()),
+ (MailboxEvent) event);
}
} catch (MailboxException e) {
LOGGER.error("Unable to update index", e);
}
}
+ private void handleMailboxEvent(Event event, MailboxSession session, MailboxEvent mailboxEvent) throws MailboxException {
+ Mailbox mailbox = factory.getMailboxMapper(session).findMailboxById(mailboxEvent.getMailboxId());
+
+ if (event instanceof Added) {
+ handleAdded(session, mailbox, (Added) event);
+ } else if (event instanceof Expunged) {
+ handleExpunged(session, mailbox, (Expunged) event);
+ } else if (event instanceof FlagsUpdated) {
+ handleFlagsUpdated(session, mailbox, (FlagsUpdated) event);
+ } else if (event instanceof MailboxDeletion) {
+ deleteAll(session, mailbox);
+ }
+ }
+
+ private void handleFlagsUpdated(MailboxSession session, Mailbox mailbox, FlagsUpdated flagsUpdated) {
+ try {
+ update(session, mailbox, flagsUpdated.getUpdatedFlags());
+ } catch (MailboxException e) {
+ LOGGER.error("Unable to update flags in index for mailbox {}", mailbox, e);
+ }
+ }
+
+ private void handleExpunged(MailboxSession session, Mailbox mailbox, Expunged expunged) {
+ try {
+ delete(session, mailbox, expunged.getUids());
+ } catch (MailboxException e) {
+ LOGGER.error("Unable to deleted messages {} from index for mailbox {}", expunged.getUids(), mailbox, e);
+ }
+ }
+
+ private void handleAdded(MailboxSession session, Mailbox mailbox, Added added) {
+ added.getUids()
+ .stream()
+ .flatMap(uid -> retrieveMailboxMessage(session, mailbox, uid))
+ .forEach(mailboxMessage -> addMessage(session, mailbox, mailboxMessage));
+ }
+
private Stream<MailboxMessage> retrieveMailboxMessage(MailboxSession session, Mailbox mailbox, MessageUid uid) {
try {
return Stream.of(factory.getMessageMapper(session)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org