You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/06/26 05:06:24 UTC

[james-project] 06/06: [REFATORING] Use AddressList::flatten where relevant

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit c0c7989b8a5c0e84ea69fbddc3c327f61b41a9c6
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jun 21 16:29:57 2021 +0700

    [REFATORING] Use AddressList::flatten where relevant
---
 .../elasticsearch/v7/json/HeaderCollection.java    | 15 +-------------
 .../transport/mailets/ICALToJsonAttribute.java     | 12 +----------
 .../transport/mailets/UseHeaderRecipients.java     | 24 +++++-----------------
 3 files changed, 7 insertions(+), 44 deletions(-)

diff --git a/mailbox/elasticsearch-v7/src/main/java/org/apache/james/mailbox/elasticsearch/v7/json/HeaderCollection.java b/mailbox/elasticsearch-v7/src/main/java/org/apache/james/mailbox/elasticsearch/v7/json/HeaderCollection.java
index 5f4cc7b..a168e0d 100644
--- a/mailbox/elasticsearch-v7/src/main/java/org/apache/james/mailbox/elasticsearch/v7/json/HeaderCollection.java
+++ b/mailbox/elasticsearch-v7/src/main/java/org/apache/james/mailbox/elasticsearch/v7/json/HeaderCollection.java
@@ -25,12 +25,8 @@ import java.util.Locale;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
-import java.util.stream.Stream;
 
 import org.apache.james.mailbox.store.search.comparator.SentDateComparator;
-import org.apache.james.mime4j.dom.address.Address;
-import org.apache.james.mime4j.dom.address.Group;
-import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.field.address.LenientAddressParser;
 import org.apache.james.mime4j.stream.Field;
 import org.apache.james.mime4j.util.MimeUtil;
@@ -152,21 +148,12 @@ public class HeaderCollection {
             ImmutableSet.Builder<EMailer> addressSet = getAddressSet(headerName);
             LenientAddressParser.DEFAULT
                 .parseAddressList(rawHeaderValue)
+                .flatten()
                 .stream()
-                .flatMap(this::convertAddressToMailboxStream)
                 .map((mailbox) -> new EMailer(Optional.ofNullable(mailbox.getName()), mailbox.getAddress()))
                 .forEach(addressSet::add);
         }
 
-        private Stream<Mailbox> convertAddressToMailboxStream(Address address) {
-            if (address instanceof Mailbox) {
-                return Stream.of((Mailbox) address);
-            } else if (address instanceof Group) {
-                return ((Group) address).getMailboxes().stream();
-            }
-            return Stream.empty();
-        }
-
         private ImmutableSet.Builder<EMailer> getAddressSet(String headerName) {
             switch (headerName) {
                 case TO:
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
index 07e013b..e7cb9e8 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
@@ -34,7 +34,6 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.core.MailAddress;
 import org.apache.james.core.MaybeSender;
-import org.apache.james.mime4j.dom.address.Group;
 import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.field.address.LenientAddressParser;
 import org.apache.james.transport.mailets.model.ICALAttributeDTO;
@@ -202,8 +201,8 @@ public class ICALToJsonAttribute extends GenericMailet {
     private Optional<MailAddress> retrieveReplyTo(String headerValue) {
         return LenientAddressParser.DEFAULT
             .parseAddressList(headerValue)
+            .flatten()
             .stream()
-            .flatMap(this::convertAddressToMailboxStream)
             .flatMap(this::convertMailboxToMailAddress)
             .findFirst();
 
@@ -217,15 +216,6 @@ public class ICALToJsonAttribute extends GenericMailet {
         }
     }
 
-    private Stream<Mailbox> convertAddressToMailboxStream(org.apache.james.mime4j.dom.address.Address address) {
-        if (address instanceof Mailbox) {
-            return Stream.of((Mailbox) address);
-        } else if (address instanceof Group) {
-            return ((Group) address).getMailboxes().stream();
-        }
-        return Stream.empty();
-    }
-
     private Stream<Pair<String, byte[]>> toJson(Map.Entry<String, Calendar> entry,
                                                 Map<String, byte[]> rawCalendars,
                                                 Mail mail,
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
index efb4886..98072b0 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
@@ -22,7 +22,6 @@ package org.apache.james.transport.mailets;
 
 import java.io.UnsupportedEncodingException;
 import java.util.Collection;
-import java.util.stream.Stream;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
@@ -30,9 +29,6 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeUtility;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.mime4j.dom.address.Address;
-import org.apache.james.mime4j.dom.address.AddressList;
-import org.apache.james.mime4j.dom.address.Group;
 import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.field.address.LenientAddressParser;
 import org.apache.james.mime4j.util.MimeUtil;
@@ -168,12 +164,11 @@ public class UseHeaderRecipients extends GenericMailet {
         return result.build();
     }
 
-    private Collection<MailAddress> readMailAddresses(String headerPart) throws AddressException {
-        AddressList addressList = LenientAddressParser.DEFAULT
-            .parseAddressList(MimeUtil.unfold(headerPart));
-
-        return addressList.stream()
-            .flatMap(address -> convertAddressToMailboxCollection(address))
+    private Collection<MailAddress> readMailAddresses(String headerPart) {
+        return LenientAddressParser.DEFAULT
+            .parseAddressList(MimeUtil.unfold(headerPart))
+            .flatten()
+            .stream()
             .map(this::toMailAddress)
             .collect(Guavate.toImmutableList());
     }
@@ -186,15 +181,6 @@ public class UseHeaderRecipients extends GenericMailet {
         }
     }
 
-    private Stream<Mailbox> convertAddressToMailboxCollection(Address address) {
-        if (address instanceof Mailbox) {
-            return ImmutableList.of((Mailbox) address).stream();
-        } else if (address instanceof Group) {
-            return ImmutableList.copyOf(((Group) address).getMailboxes()).stream();
-        }
-        return Stream.of();
-    }
-
     private String sanitizeHeaderString(String header) throws MessagingException {
         try {
             return MimeUtility.unfold(MimeUtility.decodeText(header));

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