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