JAMES-2529 Improve addressExtractor factory method
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/016a2826 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/016a2826 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/016a2826 Branch: refs/heads/master Commit: 016a2826021340c825187ed408d7cce48602a410 Parents: 897cb08 Author: Benoit Tellier <btell...@linagora.com> Authored: Thu Aug 30 09:24:11 2018 +0700 Committer: Antoine Duprat <adup...@linagora.com> Committed: Thu Aug 30 15:07:01 2018 +0200 ---------------------------------------------------------------------- .../apache/james/jmap/mailet/filter/MailMatcher.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/016a2826/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java index c9ea72b..4626a7f 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/filter/MailMatcher.java @@ -21,7 +21,9 @@ package org.apache.james.jmap.mailet.filter; import static org.apache.james.jmap.api.filtering.Rule.Condition; +import java.util.Arrays; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.stream.Stream; @@ -30,7 +32,6 @@ import javax.mail.Message; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; -import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.james.javax.AddressHelper; import org.apache.james.jmap.api.filtering.Rule; @@ -179,9 +180,8 @@ public interface MailMatcher { .map(Stream::of) .orElse(Stream.empty()); HeaderExtractor RECIPIENT_EXTRACTOR = mail -> addressExtractor( - ArrayUtils.addAll( mail.getMessage().getRecipients(Message.RecipientType.TO), - mail.getMessage().getRecipients(Message.RecipientType.CC))); + mail.getMessage().getRecipients(Message.RecipientType.CC)); HeaderExtractor FROM_EXTRACTOR = mail -> addressExtractor(mail.getMessage().getFrom()); HeaderExtractor CC_EXTRACTOR = recipientExtractor(Message.RecipientType.CC); @@ -210,10 +210,12 @@ public interface MailMatcher { return mail -> addressExtractor(mail.getMessage().getRecipients(type)); } - static Stream<String> addressExtractor(Address[] addresses) { + static Stream<String> addressExtractor(Address[]... addresses) { return Optional.ofNullable(addresses) - .map(AddressHelper::asStringStream) - .orElse(Stream.empty()); + .map(Arrays::stream) + .orElse(Stream.empty()) + .filter(Objects::nonNull) + .flatMap(AddressHelper::asStringStream); } static Optional<HeaderExtractor> getHeaderExtractor(Field field) { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org