JAMES-2127 Guava's functions can be replaced by java 8

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

Branch: refs/heads/master
Commit: 9dc495f91e27bfb7d59b06026d5929e3f50eb2fa
Parents: c89655f
Author: quynhn <qngu...@linagora.com>
Authored: Mon Aug 28 14:57:51 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Thu Aug 31 08:24:02 2017 +0700

----------------------------------------------------------------------
 .../james/backends/jpa/JpaTestCluster.java      |  4 +---
 .../james/mailbox/model/MailboxAnnotation.java  |  2 +-
 .../mail/MessageAttachmentRepresentation.java   | 10 ----------
 .../mailbox/store/StoreMessageIdManager.java    |  5 ++---
 .../store/search/SimpleMessageSearchIndex.java  | 17 ++++++++++-------
 .../store/mail/model/ListMessageAssert.java     | 20 +++++++++++---------
 .../transport/mailets/UseHeaderRecipients.java  | 11 ++++++-----
 .../utils/MailAddressCollectionReader.java      | 16 +++++++++-------
 .../imap/processor/AbstractAuthProcessor.java   |  2 +-
 .../CassandraRecipientRewriteTable.java         |  7 ++++---
 .../org/apache/james/rrt/lib/MappingsImpl.java  |  4 +++-
 .../apache/james/transport/mailets/Resend.java  |  8 ++++----
 ...ddressesArrayToMailAddressListConverter.java |  4 ++--
 .../remoteDelivery/DelaysAndMaxRetry.java       |  7 ++-----
 .../james/transport/util/MailAddressUtils.java  |  6 +++---
 ...ssesArrayToMailAddressListConverterTest.java | 11 ++++++++++-
 .../methods/SetMailboxesCreationProcessor.java  |  4 ++--
 .../org/apache/james/jmap/model/Attachment.java | 14 ++++++++++++++
 .../apache/james/jmap/model/MessageFactory.java |  4 ++--
 19 files changed, 87 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
----------------------------------------------------------------------
diff --git 
a/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
 
b/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
index 19e0d86..42604dc 100644
--- 
a/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
+++ 
b/backends-common/jpa/src/test/java/org/apache/james/backends/jpa/JpaTestCluster.java
@@ -27,7 +27,6 @@ import javax.persistence.EntityManagerFactory;
 
 import org.apache.openjpa.persistence.OpenJPAPersistence;
 
-import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 
 public class JpaTestCluster {
@@ -48,10 +47,9 @@ public class JpaTestCluster {
         properties.put("openjpa.Log", "JDBC=WARN, SQL=WARN, Runtime=WARN");
         properties.put("openjpa.ConnectionFactoryProperties", 
"PrettyPrint=true, PrettyPrintLineLength=72");
         properties.put("openjpa.MetaDataFactory", "jpa(Types=" +
-            Joiner.on(";").join(
                 clazz.stream()
                     .map(Class::getName)
-                    .collect(Collectors.toList()))
+                    .collect(Collectors.joining(";"))
             + ")");
         return new 
JpaTestCluster(OpenJPAPersistence.getEntityManagerFactory(properties));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
index 94fc839..2f3a7f4 100644
--- 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
+++ 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotation.java
@@ -27,7 +27,7 @@ import com.google.common.base.Preconditions;
 
 public class MailboxAnnotation {
     public static MailboxAnnotation nil(MailboxAnnotationKey key) {
-        return new MailboxAnnotation(key, Optional.<String> empty());
+        return new MailboxAnnotation(key, Optional.empty());
     }
 
     public static MailboxAnnotation newInstance(MailboxAnnotationKey key, 
String value) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
index af33569..838ac56 100644
--- 
a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
+++ 
b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageAttachmentRepresentation.java
@@ -23,7 +23,6 @@ import java.util.Optional;
 
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.Cid;
-import org.apache.james.mailbox.model.MessageAttachment;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
@@ -36,15 +35,6 @@ public class MessageAttachmentRepresentation {
         return new Builder();
     }
 
-    public static MessageAttachmentRepresentation 
fromAttachment(MessageAttachment attachment) {
-        return builder()
-            .attachmentId(attachment.getAttachmentId())
-            .cid(attachment.getCid())
-            .isInline(attachment.isInline())
-            .name(attachment.getName().orElse(null))
-            .build();
-    }
-
     public static class Builder {
 
         private AttachmentId attachmentId;

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index a5c0492..11759cb 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -56,7 +56,6 @@ import 
org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.mailbox.store.quota.QuotaChecker;
-import org.apache.james.util.PredicateUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -274,8 +273,8 @@ public class StoreMessageIdManager implements 
MessageIdManager {
     }
 
     private Predicate<MailboxMessage> messageBelongsToUser(MailboxSession 
mailboxSession, MailboxMapper mailboxMapper) {
-        return PredicateUtils.compose(mailboxBelongsToUser(mailboxSession, 
mailboxMapper),
-            MailboxMessage::getMailboxId);
+        return mailboxMessage -> mailboxBelongsToUser(mailboxSession, 
mailboxMapper)
+            .test(mailboxMessage.getMailboxId());
     }
 
     private void allowOnMailboxSession(List<MailboxId> mailboxIds, 
MailboxSession mailboxSession, MailboxMapper mailboxMapper) throws 
MailboxNotFoundException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
index bc9a931..c2614de 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/SimpleMessageSearchIndex.java
@@ -157,13 +157,16 @@ public class SimpleMessageSearchIndex implements 
MessageSearchIndex {
     }
 
     private List<SearchResult> searchResults(MailboxSession session, 
Stream<Mailbox> mailboxes, SearchQuery query) throws MailboxException {
-        return mailboxes.flatMap(mailbox -> {
-            try {
-                return searchResults(session, mailbox, query).stream();
-            } catch (MailboxException e) {
-                throw Throwables.propagate(e);
-            }
-        }).collect(Guavate.toImmutableList());
+        return mailboxes.flatMap(mailbox -> getSearchResultStream(session, 
query, mailbox))
+            .collect(Guavate.toImmutableList());
+    }
+
+    private Stream<? extends SearchResult> 
getSearchResultStream(MailboxSession session, SearchQuery query, Mailbox 
mailbox) {
+        try {
+            return searchResults(session, mailbox, query).stream();
+        } catch (MailboxException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     private List<MessageId> getAsMessageIds(List<SearchResult> temp, long 
limit) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
index 215b8c1..1933858 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssert.java
@@ -39,18 +39,20 @@ public class ListMessageAssert {
 
     private final List<InnerMessage> 
messageToInnerMessage(List<MailboxMessage> messages) {
         return messages.stream()
-            .map(message -> {
-                try {
-                    return new InnerMessage(message.getMessageId(), 
message.getUid(), message.getMailboxId(), message.getInternalDate(), 
message.getBodyOctets(),
-                            message.getFullContentOctets(), 
message.getMediaType(), message.getSubType(), 
IOUtils.toString(message.getFullContent()));
-                } catch (IOException e) {
-                    Throwables.propagate(e);
-                    return null;
-                }
-            })
+            .map(message -> getInnerMessage(message))
             .collect(Guavate.toImmutableList());
     }
 
+    private InnerMessage getInnerMessage(MailboxMessage message) {
+        try {
+            return new InnerMessage(message.getMessageId(), message.getUid(), 
message.getMailboxId(), message.getInternalDate(), message.getBodyOctets(),
+                    message.getFullContentOctets(), message.getMediaType(), 
message.getSubType(), IOUtils.toString(message.getFullContent()));
+        } catch (IOException e) {
+            Throwables.propagate(e);
+            return null;
+        }
+    }
+
     private ListMessageAssert(List<MailboxMessage> actual) {
         this.actual = actual;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
----------------------------------------------------------------------
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 7b2b6a6..c562ee8 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,6 +22,7 @@ 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;
 import javax.mail.internet.MimeMessage;
@@ -174,7 +175,7 @@ public class UseHeaderRecipients extends GenericMailet {
             .parseAddressList(MimeUtil.unfold(headerPart));
 
         return addressList.stream()
-            .flatMap(address -> 
convertAddressToMailboxCollection(address).stream())
+            .flatMap(address -> convertAddressToMailboxCollection(address))
             .map(this::toMailAddress)
             .collect(Guavate.toImmutableList());
     }
@@ -187,13 +188,13 @@ public class UseHeaderRecipients extends GenericMailet {
         }
     }
 
-    private Collection<Mailbox> convertAddressToMailboxCollection(Address 
address) {
+    private Stream<Mailbox> convertAddressToMailboxCollection(Address address) 
{
         if (address instanceof Mailbox) {
-            return ImmutableList.of((Mailbox) address);
+            return ImmutableList.of((Mailbox) address).stream();
         } else if (address instanceof Group) {
-            return ImmutableList.copyOf(((Group) address).getMailboxes());
+            return ImmutableList.copyOf(((Group) 
address).getMailboxes()).stream();
         }
-        return ImmutableList.of();
+        return Stream.of();
     }
 
     private String sanitizeHeaderString(String header) throws 
MessagingException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
index 802e79d..6371d35 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/utils/MailAddressCollectionReader.java
@@ -38,14 +38,16 @@ public class MailAddressCollectionReader {
         return Splitter.onPattern("(,| |\t)").splitToList(condition)
             .stream()
             .filter(s -> !Strings.isNullOrEmpty(s))
-            .map(s -> {
-                try {
-                    return new MailAddress(s);
-                } catch (AddressException e) {
-                    throw Throwables.propagate(e);
-                }
-            })
+            .map(s -> getMailAddress(s))
             .collect(Guavate.toImmutableSet());
     }
 
+    private static MailAddress getMailAddress(String s) {
+        try {
+            return new MailAddress(s);
+        } catch (AddressException e) {
+            throw Throwables.propagate(e);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
----------------------------------------------------------------------
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
index 5ff2d9b..7208b3c 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
@@ -170,7 +170,7 @@ public abstract class AbstractAuthProcessor<M extends 
ImapRequest> extends Abstr
     }
 
     protected static AuthenticationAttempt noDelegation(String 
authenticationId, String password) {
-        return new AuthenticationAttempt(Optional.<String>empty(), 
authenticationId, password);
+        return new AuthenticationAttempt(Optional.empty(), authenticationId, 
password);
     }
 
     protected static class AuthenticationAttempt {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
 
b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
index 5a892e3..60642e2 100644
--- 
a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
+++ 
b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTable.java
@@ -174,9 +174,10 @@ public class CassandraRecipientRewriteTable extends 
AbstractRecipientRewriteTabl
     @Override
     protected String mapAddressInternal(String user, String domain) throws 
RecipientRewriteTableException {
         Mappings mappings = retrieveMappings(user, domain)
-            .orElse(retrieveMappings(WILDCARD, domain)
-                    .orElse(retrieveMappings(user, WILDCARD)
-                            .orElse(MappingsImpl.empty())));
+            .orElseGet(() -> retrieveMappings(WILDCARD, domain)
+                .orElseGet(() -> retrieveMappings(user, WILDCARD)
+                    .orElseGet(() -> MappingsImpl.empty())));
+
         return !mappings.isEmpty() ? mappings.serialize() : null;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
index ac11e02..eacc55e 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
@@ -31,6 +31,7 @@ import java.util.stream.Stream;
 
 import org.apache.james.rrt.lib.Mapping.Type;
 
+import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Joiner;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
@@ -121,7 +122,8 @@ public class MappingsImpl implements Mappings, Serializable 
{
     @Override
     public Iterable<String> asStrings() {
         return mappings.stream()
-            .map(Mapping::asString)::iterator;
+            .map(Mapping::asString)
+            .collect(Guavate.toImmutableList());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
index 0ee248f..393bd6e 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
@@ -369,8 +369,8 @@ public class Resend extends GenericMailet implements 
RedirectNotify {
         }
 
         return AddressExtractor.withContext(getMailetContext())
-                .allowedSpecials(ImmutableList.of("postmaster", "sender", 
"null", "unaltered"))
-                .extract(replyTo)
+            .allowedSpecials(ImmutableList.of("postmaster", "sender", "null", 
"unaltered"))
+            .extract(replyTo)
             .stream()
             .findFirst();
     }
@@ -384,8 +384,8 @@ public class Resend extends GenericMailet implements 
RedirectNotify {
     public List<MailAddress> getRecipients() throws MessagingException {
           ImmutableList.Builder<MailAddress> builder = ImmutableList.builder();
           List<MailAddress> mailAddresses = 
AddressExtractor.withContext(getMailetContext())
-                  .allowedSpecials(ImmutableList.of("postmaster", "sender", 
"from", "replyTo", "reversePath", "unaltered", "recipients", "to", "null"))
-                  .extract(getInitParameters().getRecipients());
+              .allowedSpecials(ImmutableList.of("postmaster", "sender", 
"from", "replyTo", "reversePath", "unaltered", "recipients", "to", "null"))
+              .extract(getInitParameters().getRecipients());
           for (MailAddress address : mailAddresses) {
               builder.add(address);
           }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
index 60f8e46..cef6c33 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
@@ -25,6 +25,7 @@ import java.util.Optional;
 import javax.mail.Address;
 import javax.mail.internet.AddressException;
 
+import org.apache.james.util.OptionalUtils;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,8 +43,7 @@ public class AddressesArrayToMailAddressListConverter {
         return Arrays.asList(addresses)
             .stream()
             .map(address -> toMailAddress(address))
-            .filter(Optional::isPresent)
-            .map(Optional::get)
+            .flatMap(OptionalUtils::toStream)
             .collect(Guavate.toImmutableList());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
index 11036b3..e627ea0 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
@@ -25,7 +25,6 @@ import javax.mail.MessagingException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
 import com.google.common.base.Splitter;
@@ -80,11 +79,9 @@ public class DelaysAndMaxRetry {
             return ImmutableList.of(new Delay());
         }
 
-        ImmutableList<String> delayStrings = Splitter.on(',')
+        List<String> delayStrings = Splitter.on(',')
             .omitEmptyStrings()
-            .splitToList(delaysAsString)
-            .stream()
-            .collect(Guavate.toImmutableList());
+            .splitToList(delaysAsString);
 
         ImmutableList.Builder<Delay> builder = ImmutableList.builder();
         try {

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
index bce977b..0a19e1f 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/MailAddressUtils.java
@@ -44,16 +44,16 @@ public class MailAddressUtils {
     }
 
     public static List<InternetAddress> toInternetAddresses(List<MailAddress> 
mailAddresses) {
-        return iterableOfInternetAddress(mailAddresses)
+        return streamOfInternetAddress(mailAddresses)
             .collect(Guavate.toImmutableList());
     }
 
     public static InternetAddress[] toInternetAddressArray(List<MailAddress> 
mailAddresses) {
-        return iterableOfInternetAddress(mailAddresses)
+        return streamOfInternetAddress(mailAddresses)
             .toArray(InternetAddress[]::new);
     }
 
-    private static Stream<InternetAddress> 
iterableOfInternetAddress(List<MailAddress> mailAddresses) {
+    private static Stream<InternetAddress> 
streamOfInternetAddress(List<MailAddress> mailAddresses) {
         return mailAddresses.stream()
             .map(MailAddress::toInternetAddress);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
index 6ec50e4..e706e58 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.transport.mailets.remoteDelivery;
 
 import static org.assertj.core.api.Assertions.assertThat;
-
 import javax.mail.Address;
 import javax.mail.internet.InternetAddress;
 
@@ -29,6 +28,8 @@ import org.junit.Test;
 
 public class AddressesArrayToMailAddressListConverterTest {
 
+    private static final String WRONG_INTERNET_ADDRESS = "!!";
+
     @Test
     public void getAddressesAsMailAddressShouldReturnEmptyOnNull() {
         
assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(null)).isEmpty();
@@ -53,4 +54,12 @@ public class AddressesArrayToMailAddressListConverterTest {
             new 
InternetAddress(MailAddressFixture.OTHER_AT_JAMES.toString())}))
             .containsOnly(MailAddressFixture.ANY_AT_JAMES, 
MailAddressFixture.OTHER_AT_JAMES);
     }
+
+    @Test
+    public void getAddressesAsMailAddressShouldFilterErrorMailAddress() throws 
Exception {
+        
assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(new
 Address[]{
+            new InternetAddress(MailAddressFixture.ANY_AT_JAMES.toString()),
+            new InternetAddress(WRONG_INTERNET_ADDRESS)}))
+            .containsOnly(MailAddressFixture.ANY_AT_JAMES);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
index 071eefd..51b9c54 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesCreationProcessor.java
@@ -48,12 +48,12 @@ import org.apache.james.mailbox.model.MailboxId.Factory;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
 import com.github.fge.lambdas.functions.ThrowingFunction;
 import com.google.common.annotations.VisibleForTesting;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class SetMailboxesCreationProcessor implements SetMailboxesProcessor {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Attachment.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Attachment.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Attachment.java
index 68606cc..304acbe 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Attachment.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/Attachment.java
@@ -21,6 +21,8 @@ package org.apache.james.jmap.model;
 
 import java.util.Optional;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
 import com.google.common.annotations.VisibleForTesting;
@@ -57,21 +59,33 @@ public class Attachment {
             return this;
         }
 
+        @JsonDeserialize
         public Builder name(String name) {
             this.name = name;
             return this;
         }
 
+        public Builder name(Optional<String> name) {
+            this.name = name.orElse(null);
+            return this;
+        }
+
         public Builder size(long size) {
             this.size = size;
             return this;
         }
 
+        @JsonDeserialize
         public Builder cid(String cid) {
             this.cid = cid;
             return this;
         }
 
+        public Builder cid(Optional<String> cid) {
+            this.cid = cid.orElse(null);
+            return this;
+        }
+
         public Builder isInline(boolean isInline) {
             this.isInline = isInline;
             return this;

http://git-wip-us.apache.org/repos/asf/james-project/blob/9dc495f9/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
index 9c03d3f..1533637 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
@@ -219,8 +219,8 @@ public class MessageFactory {
                     .blobId(BlobId.of(attachment.getAttachmentId().getId()))
                     .type(attachment.getAttachment().getType())
                     .size(attachment.getAttachment().getSize())
-                    .name(attachment.getName().orElse(null))
-                    .cid(attachment.getCid().map(Cid::getValue).orElse(null))
+                    .name(attachment.getName())
+                    .cid(attachment.getCid().map(Cid::getValue))
                     .isInline(attachment.isInline())
                     .build();
     }


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

Reply via email to