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

[13/16] james-project git commit: MAILBOX-357 Improve SpamAssassinListener with method extraction

MAILBOX-357 Improve SpamAssassinListener with method extraction


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

Branch: refs/heads/master
Commit: f1cf245245b7c190ddd3743cef0b65c36a2f47b2
Parents: 0e01d39
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Dec 11 10:14:05 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 12 17:50:58 2018 +0700

----------------------------------------------------------------------
 .../spamassassin/SpamAssassinListener.java      | 50 +++++++++++---------
 1 file changed, 28 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f1cf2452/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 8ac45e1..0c2ea77 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
@@ -84,36 +84,42 @@ public class SpamAssassinListener implements SpamEventListener {
         try {
             MailboxSession session = mailboxManager.createSystemSession(getClass().getCanonicalName());
             if (event instanceof MessageMoveEvent) {
-                MessageMoveEvent messageMoveEvent = (MessageMoveEvent) event;
-                if (isMessageMovedToSpamMailbox(messageMoveEvent)) {
-                    LOGGER.debug("Spam event detected");
-                    ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
-                    spamAssassin.learnSpam(messages, event.getUser());
-                }
-                if (isMessageMovedOutOfSpamMailbox(messageMoveEvent)) {
-                    ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
-                    spamAssassin.learnHam(messages, event.getUser());
-                }
+                handleMessageMove(event, (MessageMoveEvent) event);
             }
             if (event instanceof Added) {
-                Added addedEvent = (Added) event;
-                if (isAppendedToInbox(addedEvent)) {
-                    Mailbox mailbox = mapperFactory.getMailboxMapper(session).findMailboxById(addedEvent.getMailboxId());
-                    MessageMapper messageMapper = mapperFactory.getMessageMapper(session);
-
-                    List<InputStream> contents = addedEvent.getUids()
-                        .stream()
-                        .flatMap(uid -> retrieveMessage(messageMapper, mailbox, uid))
-                        .map(Throwing.function(MailboxMessage::getFullContent))
-                        .collect(Guavate.toImmutableList());
-                    spamAssassin.learnHam(contents, event.getUser());
-                }
+                handleAdded(event, session, (Added) event);
             }
         } catch (MailboxException e) {
             LOGGER.warn("Error while processing SPAM listener", e);
         }
     }
 
+    private void handleAdded(Event event, MailboxSession session, Added addedEvent) throws MailboxException {
+        if (isAppendedToInbox(addedEvent)) {
+            Mailbox mailbox = mapperFactory.getMailboxMapper(session).findMailboxById(addedEvent.getMailboxId());
+            MessageMapper messageMapper = mapperFactory.getMessageMapper(session);
+
+            List<InputStream> contents = addedEvent.getUids()
+                .stream()
+                .flatMap(uid -> retrieveMessage(messageMapper, mailbox, uid))
+                .map(Throwing.function(MailboxMessage::getFullContent))
+                .collect(Guavate.toImmutableList());
+            spamAssassin.learnHam(contents, event.getUser());
+        }
+    }
+
+    private void handleMessageMove(Event event, MessageMoveEvent messageMoveEvent) {
+        if (isMessageMovedToSpamMailbox(messageMoveEvent)) {
+            LOGGER.debug("Spam event detected");
+            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
+            spamAssassin.learnSpam(messages, event.getUser());
+        }
+        if (isMessageMovedOutOfSpamMailbox(messageMoveEvent)) {
+            ImmutableList<InputStream> messages = retrieveMessages(messageMoveEvent);
+            spamAssassin.learnHam(messages, event.getUser());
+        }
+    }
+
     private Stream<MailboxMessage> retrieveMessage(MessageMapper messageMapper, Mailbox mailbox, MessageUid uid) {
         try {
             return Iterators.toStream(messageMapper.findInMailbox(mailbox, MessageRange.one(uid), MessageMapper.FetchType.Full, LIMIT));


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