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 2017/08/31 01:32:22 UTC

[10/22] james-project git commit: JAMES-2127 Server: Stream instead of FluentIterable.from

JAMES-2127 Server: Stream instead of FluentIterable.from


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

Branch: refs/heads/master
Commit: 0c2ae4527c25dba3eabcf621a442d16f59d1d056
Parents: 5d43d19
Author: quynhn <qn...@linagora.com>
Authored: Fri Aug 25 16:15:30 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 31 08:23:58 2017 +0700

----------------------------------------------------------------------
 .../mailbox/store/StoreMessageIdManager.java    | 13 ++---
 .../java/org/apache/mailet/base/MailetUtil.java |  1 -
 .../MailAttributesListToMimeHeaders.java        |  4 +-
 .../org/apache/james/rrt/lib/MappingsImpl.java  | 37 ++++++------
 .../dnsservice/api/InMemoryDNSService.java      | 11 ++--
 .../mailets/RecipientRewriteTableProcessor.java | 61 +++++++++++---------
 .../transport/mailets/jsieve/DiscardAction.java |  8 ++-
 ...ddressesArrayToMailAddressListConverter.java | 11 ++--
 .../remoteDelivery/DelaysAndMaxRetry.java       | 12 ++--
 .../remoteDelivery/DeliveryRunnable.java        |  2 +-
 .../InternetAddressConverter.java               |  9 ++-
 .../james/transport/util/MailAddressUtils.java  | 14 ++---
 .../remoteDelivery/DeliveryRunnableTest.java    |  4 +-
 13 files changed, 93 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/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 46b65bc..a5c0492 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,6 +56,7 @@ 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;
 
@@ -67,13 +68,6 @@ import com.google.common.collect.Sets.SetView;
 
 public class StoreMessageIdManager implements MessageIdManager {
     private static final Logger LOGGER = LoggerFactory.getLogger(StoreMessageIdManager.class);
-    public static <T, S> Predicate<T> compose(Predicate<S> predicate, Function<T, S> function) {
-        return input -> predicate.test(function.apply(input));
-    }
-
-    static<T> Predicate<T> not(Predicate<T> p) {
-        return t -> !p.test(t);
-    }
 
     private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
     private final MailboxEventDispatcher dispatcher;
@@ -280,7 +274,7 @@ public class StoreMessageIdManager implements MessageIdManager {
     }
 
     private Predicate<MailboxMessage> messageBelongsToUser(MailboxSession mailboxSession, MailboxMapper mailboxMapper) {
-        return compose(mailboxBelongsToUser(mailboxSession, mailboxMapper),
+        return PredicateUtils.compose(mailboxBelongsToUser(mailboxSession, mailboxMapper),
             MailboxMessage::getMailboxId);
     }
 
@@ -295,7 +289,8 @@ public class StoreMessageIdManager implements MessageIdManager {
     }
 
     private Predicate<MailboxId> isMailboxOfOtherUser(MailboxSession mailboxSession, MailboxMapper mailboxMapper) {
-        return not(mailboxBelongsToUser(mailboxSession, mailboxMapper));
+        return mailboxBelongsToUser(mailboxSession, mailboxMapper)
+            .negate();
     }
 
     private boolean belongsToCurrentUser(Mailbox mailbox, MailboxSession session) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java b/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
index dc8ec27..8790a9c 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/MailetUtil.java
@@ -122,7 +122,6 @@ public class MailetUtil {
 
     public static int getInitParameterAsStrictlyPositiveInteger(String condition, Optional<String> defaultValue) throws MessagingException {
         String value = Optional.ofNullable(condition)
-            .filter(Strings::isNullOrEmpty)
             .orElse(defaultValue.orElse(null));
 
         if (Strings.isNullOrEmpty(value)) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java
index e42deb6..cea486a 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeaders.java
@@ -28,7 +28,7 @@ import java.util.Optional;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.james.util.OptionalConverter;
+import org.apache.james.util.OptionalUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.slf4j.Logger;
@@ -88,7 +88,7 @@ public class MailAttributesListToMimeHeaders extends GenericMailet {
     }
 
     private void addCollectionToHeader(MimeMessage message, String headerName, Optional<Collection> values) {
-        OptionalConverter.toStream(values)
+        OptionalUtils.toStream(values)
             .flatMap(Collection::stream)
             .forEach(value -> addValueToHeader(message, headerName, value));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/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 523731e..ac11e02 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
@@ -26,6 +26,8 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.Optional;
 import java.util.StringTokenizer;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
 
 import org.apache.james.rrt.lib.Mapping.Type;
 
@@ -33,9 +35,6 @@ import com.google.common.base.Joiner;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
 import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
@@ -63,19 +62,15 @@ public class MappingsImpl implements Mappings, Serializable {
     }
     
     public static MappingsImpl fromCollection(Collection<String> mappings) {
-        Builder builder = builder();
-        for (String mapping: mappings) {
-            builder.add(mapping);
-        }
-        return builder.build();
+        return mappings.stream()
+            .reduce(builder(), (builder, mapping) -> builder.add(mapping), (builder1, builder2) -> builder1.addAll(builder2.build()))
+            .build();
     }
     
-    public static MappingsImpl fromMappings(Iterable<Mapping> mappings) {
-        Builder builder = builder();
-        for (Mapping mapping: mappings) {
-            builder.add(mapping);
-        }
-        return builder.build();
+    private static MappingsImpl fromMappings(Stream<Mapping> mappings) {
+        return mappings
+            .reduce(builder(), (builder, mapping) -> builder.add(mapping), (builder1, builder2) -> builder1.addAll(builder2.build()))
+            .build();
     }
     
     public static Builder from(Mappings from) {
@@ -125,7 +120,8 @@ public class MappingsImpl implements Mappings, Serializable {
     
     @Override
     public Iterable<String> asStrings() {
-        return FluentIterable.from(mappings).transform(Mapping::asString);
+        return mappings.stream()
+            .map(Mapping::asString)::iterator;
     }
 
     @Override
@@ -172,20 +168,23 @@ public class MappingsImpl implements Mappings, Serializable {
     @Override
     public boolean contains(Type type) {
         Preconditions.checkNotNull(type);
-        return FluentIterable.from(mappings).anyMatch(hasType(type));
+        return mappings.stream()
+            .anyMatch(hasType(type));
     }
     
     @Override
     public Mappings select(Type type) {
         Preconditions.checkNotNull(type);
-        return fromMappings(FluentIterable.from(mappings).filter(hasType(type)));
+        return fromMappings(mappings.stream()
+            .filter(hasType(type)));
     }
     
     
     @Override
     public Mappings exclude(Type type) {
         Preconditions.checkNotNull(type);
-        return fromMappings(FluentIterable.from(mappings).filter(Predicates.not(hasType(type))));
+        return fromMappings(mappings.stream()
+            .filter(hasType(type).negate()));
     }
  
     @Override
@@ -200,7 +199,7 @@ public class MappingsImpl implements Mappings, Serializable {
         if (isEmpty()) {
             return Optional.empty();
         }
-        return Optional.<Mappings> of(this);
+        return Optional.of(this);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
index 04926ab..0af0ac9 100644
--- a/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
+++ b/server/dns-service/dnsservice-api/src/test/java/org/apache/james/dnsservice/api/InMemoryDNSService.java
@@ -25,9 +25,8 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.function.Predicate;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Maps;
 import com.google.common.net.InetAddresses;
@@ -102,10 +101,10 @@ public class InMemoryDNSService implements DNSService {
     }
 
     private Entry<String, DNSRecord> getDNSEntry(Predicate<? super Entry<String, DNSRecord>> filter) {
-        return FluentIterable.from(records.entrySet())
-                    .filter(filter)
-                    .first()
-                    .get();
+        return records.entrySet().stream()
+            .filter(filter)
+            .findFirst()
+            .get();
     }
 
     private static class DNSRecord {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
index 6e91e6b..633dc22 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
@@ -21,6 +21,10 @@ package org.apache.james.transport.mailets;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
 import javax.mail.MessagingException;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.MimeMessage;
@@ -38,24 +42,23 @@ import org.apache.mailet.MailetContext;
 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.Function;
 import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 public class RecipientRewriteTableProcessor {
     private static final Logger LOGGER = LoggerFactory.getLogger(RecipientRewriteTableProcessor.class);
+    private static final boolean parallel = true;
 
     private final org.apache.james.rrt.api.RecipientRewriteTable virtualTableStore;
     private final DomainList domainList;
     private final MailetContext mailetContext;
 
-    private static final Function<RrtExecutionResult, List<MailAddress>> mailAddressesFromMappingData =
+    private static final Function<RrtExecutionResult, Stream<MailAddress>> mailAddressesFromMappingData =
         mappingData -> mappingData.getNewRecipients()
             .orElse(mappingData.getRecipientWithError()
-                .orElse(ImmutableList.of()));
+                .orElse(ImmutableList.of())).stream();
 
     private static final Function<Mapping, Optional<MailAddress>> mailAddressFromMapping =
         addressMapping -> {
@@ -90,11 +93,12 @@ public class RecipientRewriteTableProcessor {
         mail.setRecipients(newRecipients);
     }
 
+
     private ImmutableList<MailAddress> getRecipientsByCondition(ImmutableList<RrtExecutionResult> mappingDatas, Predicate<RrtExecutionResult> filterCondition) {
-        return FluentIterable.from(mappingDatas)
+        return mappingDatas.stream()
             .filter(filterCondition)
-            .transformAndConcat(mailAddressesFromMappingData)
-            .toList();
+            .flatMap(mailAddressesFromMappingData)
+            .collect(Guavate.toImmutableList());
     }
 
     private ImmutableList<RrtExecutionResult> toMappingDatas(final Mail mail) {
@@ -104,9 +108,10 @@ public class RecipientRewriteTableProcessor {
             return getRrtExecutionResult(mail, recipient);
         };
 
-        return FluentIterable.from(mail.getRecipients())
-            .transform(convertToMappingData)
-            .toList();
+        return mail.getRecipients()
+            .stream()
+            .map(convertToMappingData)
+            .collect(Guavate.toImmutableList());
     }
 
     private RrtExecutionResult getRrtExecutionResult(Mail mail, MailAddress recipient) {
@@ -140,45 +145,45 @@ public class RecipientRewriteTableProcessor {
 
     private ImmutableList<Mapping> convertToNewMappings(final Mappings mappings,
             ImmutableList<Mapping> addressWithoutDomains) {
-        return FluentIterable.from(mappings)
-            .filter(Mapping::hasDomain)
-            .append(addressWithoutDomains)
-            .toList();
+        return Stream.concat(StreamSupport.stream(mappings.spliterator(), parallel)
+                    .filter(Mapping::hasDomain),
+                addressWithoutDomains.stream())
+            .collect(Guavate.toImmutableList());
     }
 
     private ImmutableList<MailAddress> getLocalAddresses(ImmutableList<MailAddress> mailAddresses) {
-        return FluentIterable.from(mailAddresses)
+        return mailAddresses.stream()
             .filter(mailAddress -> mailetContext.isLocalServer(mailAddress.getDomain()))
-            .toList();
+            .collect(Guavate.toImmutableList());
     }
 
     private ImmutableList<MailAddress> buildMailAddressFromMappingAddress(ImmutableList<Mapping> newMappings) {
-        return FluentIterable.from(newMappings)
-            .transform(mailAddressFromMapping)
+        return newMappings.stream()
+            .map(mailAddressFromMapping)
             .filter(Optional::isPresent)
-            .transform(Optional::get)
-            .toList();
+            .map(Optional::get)
+            .collect(Guavate.toImmutableList());
     }
 
     private ImmutableList<Mapping> getAddressWithNoDomain(Mappings mappings, DomainList domainList) throws MessagingException {
-        ImmutableList<Mapping> addressWithoutDomains = FluentIterable.from(mappings)
+        ImmutableList<Mapping> addressWithoutDomains = StreamSupport.stream(mappings.spliterator(), parallel)
             .filter(address -> !address.hasDomain())
-            .toList();
+            .collect(Guavate.toImmutableList());
         
         if (!addressWithoutDomains.isEmpty()) {
             final String defaultDomain = getDefaultDomain(domainList);
 
-            return FluentIterable.from(addressWithoutDomains)
-                .transform(address -> address.appendDomain(defaultDomain))
-                .toList();
+            return addressWithoutDomains.stream()
+                .map(address -> address.appendDomain(defaultDomain))
+                .collect(Guavate.toImmutableList());
         }
         return ImmutableList.of();
     }
 
     private void forwardToRemoteAddress(MailAddress sender, MailAddress recipient, MimeMessage message, ImmutableList<MailAddress> mailAddresses) throws MessagingException {
-        ImmutableList<MailAddress> remoteAddress = FluentIterable.from(mailAddresses)
+        ImmutableList<MailAddress> remoteAddress = mailAddresses.stream()
             .filter(mailAddress -> !mailetContext.isLocalServer(mailAddress.getDomain()))
-            .toList();
+            .collect(Guavate.toImmutableList());
 
         if (!remoteAddress.isEmpty()) {
             try {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java
index f22b6ab..15d97f9 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/DiscardAction.java
@@ -24,7 +24,8 @@ import org.apache.jsieve.mail.Action;
 import org.apache.jsieve.mail.ActionDiscard;
 import org.apache.mailet.Mail;
 
-import com.google.common.collect.FluentIterable;
+import com.github.steveash.guavate.Guavate;
+
 
 public class DiscardAction extends FileIntoAction implements MailAction {
 
@@ -36,8 +37,9 @@ public class DiscardAction extends FileIntoAction implements MailAction {
     }
 
     public static void removeRecipient(Mail mail, ActionContext context) {
-        mail.setRecipients(FluentIterable.from(mail.getRecipients())
+        mail.setRecipients(mail.getRecipients()
+            .stream()
             .filter(mailAddress -> !mailAddress.equals(context.getRecipient()))
-            .toList());
+            .collect(Guavate.toImmutableList()));
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/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 a1cd46b..60f8e46 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
@@ -29,7 +29,7 @@ import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.FluentIterable;
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
 
 public class AddressesArrayToMailAddressListConverter {
@@ -39,11 +39,12 @@ public class AddressesArrayToMailAddressListConverter {
         if (addresses == null) {
             return ImmutableList.of();
         }
-        return FluentIterable.from(Arrays.asList(addresses))
-            .transform(address -> toMailAddress(address))
+        return Arrays.asList(addresses)
+            .stream()
+            .map(address -> toMailAddress(address))
             .filter(Optional::isPresent)
-            .transform(Optional::get)
-            .toList();
+            .map(Optional::get)
+            .collect(Guavate.toImmutableList());
     }
 
     private static Optional<MailAddress> toMailAddress(Address address) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/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 fd7e043..11036b3 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
@@ -20,16 +20,15 @@
 package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.util.List;
-
 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;
-import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 
@@ -80,10 +79,13 @@ public class DelaysAndMaxRetry {
             // Use default delayTime.
             return ImmutableList.of(new Delay());
         }
-        ImmutableList<String> delayStrings = FluentIterable.from(Splitter.on(',')
+
+        ImmutableList<String> delayStrings = Splitter.on(',')
             .omitEmptyStrings()
-            .split(delaysAsString))
-            .toList();
+            .splitToList(delaysAsString)
+            .stream()
+            .collect(Guavate.toImmutableList());
+
         ImmutableList.Builder<Delay> builder = ImmutableList.builder();
         try {
             for (String s : delayStrings) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
index ede8101..b7115a0 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
@@ -22,6 +22,7 @@ package org.apache.james.transport.mailets.remoteDelivery;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Supplier;
 
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.lifecycle.api.LifecycleUtil;
@@ -36,7 +37,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Supplier;
 
 public class DeliveryRunnable implements Runnable {
     private static final Logger LOGGER = LoggerFactory.getLogger(DeliveryRunnable.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/InternetAddressConverter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/InternetAddressConverter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/InternetAddressConverter.java
index 4e05b1d..af446ec 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/InternetAddressConverter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/InternetAddressConverter.java
@@ -20,21 +20,20 @@
 package org.apache.james.transport.mailets.remoteDelivery;
 
 import java.util.Collection;
-
 import javax.mail.internet.InternetAddress;
 
 import org.apache.mailet.MailAddress;
 
 import com.google.common.base.Preconditions;
-import com.google.common.collect.FluentIterable;
+
 
 public class InternetAddressConverter {
 
     public static InternetAddress[] convert(Collection<MailAddress> recipients) {
         Preconditions.checkNotNull(recipients);
-        return FluentIterable.from(recipients)
-            .transform(MailAddress::toInternetAddress)
-            .toArray(InternetAddress.class);
+        return recipients.stream()
+            .map(MailAddress::toInternetAddress)
+            .toArray(InternetAddress[]::new);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/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 ca80c44..bce977b 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
@@ -19,14 +19,14 @@
 package org.apache.james.transport.util;
 
 import java.util.List;
-
+import java.util.stream.Stream;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.MailAddress;
 
-import com.google.common.collect.FluentIterable;
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
 
 public class MailAddressUtils {
@@ -45,17 +45,17 @@ public class MailAddressUtils {
 
     public static List<InternetAddress> toInternetAddresses(List<MailAddress> mailAddresses) {
         return iterableOfInternetAddress(mailAddresses)
-            .toList();
+            .collect(Guavate.toImmutableList());
     }
 
     public static InternetAddress[] toInternetAddressArray(List<MailAddress> mailAddresses) {
         return iterableOfInternetAddress(mailAddresses)
-            .toArray(InternetAddress.class);
+            .toArray(InternetAddress[]::new);
     }
 
-    private static FluentIterable<InternetAddress> iterableOfInternetAddress(List<MailAddress> mailAddresses) {
-        return FluentIterable.from(mailAddresses)
-            .transform(MailAddress::toInternetAddress);
+    private static Stream<InternetAddress> iterableOfInternetAddress(List<MailAddress> mailAddresses) {
+        return mailAddresses.stream()
+            .map(MailAddress::toInternetAddress);
     }
 
     public static boolean isUnalteredOrReversePathOrSender(MailAddress mailAddress) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/0c2ae452/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
index daad6e8..2575db3 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
@@ -26,9 +26,9 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
-
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
 
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.metrics.api.Metric;
@@ -43,8 +43,6 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
-import com.google.common.base.Supplier;
-
 public class DeliveryRunnableTest {
 
     public static final Date FIXED_DATE = new Date(1159599194961L);


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