JAMES-2127 Mailet: 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/5d43d19e Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5d43d19e Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5d43d19e Branch: refs/heads/master Commit: 5d43d19eb4e8e037cf6da39e814001045f1ea5a6 Parents: b3864f3 Author: quynhn <qngu...@linagora.com> Authored: Fri Aug 25 15:48:39 2017 +0700 Committer: quynhn <qngu...@linagora.com> Committed: Wed Aug 30 11:08:48 2017 +0700 ---------------------------------------------------------------------- mailet/api/pom.xml | 4 ++++ .../org/apache/mailet/PerRecipientHeaders.java | 9 ++++---- mailet/base/pom.xml | 4 ++++ .../mailet/base/test/MimeMessageBuilder.java | 23 ++++++++++---------- .../mailet/DefaultDescriptorsExtractor.java | 4 ++-- .../transport/mailets/RecipientToLowerCase.java | 10 ++++----- .../transport/mailets/UseHeaderRecipients.java | 16 +++++--------- .../utils/MailAddressCollectionReader.java | 13 ++++++----- .../transport/mailets/StripAttachmentTest.java | 5 ++--- 9 files changed, 46 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/api/pom.xml ---------------------------------------------------------------------- diff --git a/mailet/api/pom.xml b/mailet/api/pom.xml index 70a6b44..53b4764 100644 --- a/mailet/api/pom.xml +++ b/mailet/api/pom.xml @@ -37,6 +37,10 @@ <dependencies> <dependency> + <groupId>com.github.steveash.guavate</groupId> + <artifactId>guavate</artifactId> + </dependency> + <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java ---------------------------------------------------------------------- diff --git a/mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java b/mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java index d261a04..af9b233 100644 --- a/mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java +++ b/mailet/api/src/main/java/org/apache/mailet/PerRecipientHeaders.java @@ -21,12 +21,12 @@ package org.apache.mailet; import java.util.Collection; +import com.github.steveash.guavate.Guavate; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.FluentIterable; import com.google.common.collect.Multimap; public class PerRecipientHeaders { @@ -45,9 +45,10 @@ public class PerRecipientHeaders { } public Collection<String> getHeaderNamesForRecipient(MailAddress recipient) { - return FluentIterable.from(headersByRecipient.get(recipient)) - .transform(Header::getName) - .toSet(); + return headersByRecipient.get(recipient) + .stream() + .map(Header::getName) + .collect(Guavate.toImmutableSet()); } public void addHeaderForRecipient(Header header, MailAddress recipient) { http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/base/pom.xml ---------------------------------------------------------------------- diff --git a/mailet/base/pom.xml b/mailet/base/pom.xml index 54c72da..7934ca2 100644 --- a/mailet/base/pom.xml +++ b/mailet/base/pom.xml @@ -47,6 +47,10 @@ <artifactId>apache-mime4j-core</artifactId> </dependency> <dependency> + <groupId>com.github.steveash.guavate</groupId> + <artifactId>guavate</artifactId> + </dependency> + <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java ---------------------------------------------------------------------- diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java index f83cd6f..745e331 100644 --- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java +++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java @@ -27,6 +27,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.Properties; +import java.util.function.Function; import javax.activation.DataHandler; import javax.mail.BodyPart; import javax.mail.Message; @@ -42,11 +43,10 @@ import javax.mail.util.ByteArrayDataSource; import org.apache.commons.io.IOUtils; +import com.github.steveash.guavate.Guavate; import com.google.common.base.Charsets; -import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; public class MimeMessageBuilder { @@ -258,23 +258,24 @@ public class MimeMessageBuilder { } public MimeMessageBuilder addToRecipient(String... tos) throws AddressException { - this.to.addAll(FluentIterable.from(Arrays.asList(tos)) - .transform(TO_INTERNET_ADDRESS) - .toList()); + this.to.addAll(Arrays.asList(tos).stream() + .map(TO_INTERNET_ADDRESS) + .collect(Guavate.toImmutableList())); return this; } public MimeMessageBuilder addCcRecipient(String... ccs) throws AddressException { - this.cc.addAll(FluentIterable.from(Arrays.asList(ccs)) - .transform(TO_INTERNET_ADDRESS) - .toList()); + this.cc.addAll(Arrays.asList(ccs).stream() + .map(TO_INTERNET_ADDRESS) + .collect(Guavate.toImmutableList())); return this; } public MimeMessageBuilder addBccRecipient(String... bccs) throws AddressException { - this.bcc.addAll(FluentIterable.from(Arrays.asList(bccs)) - .transform(TO_INTERNET_ADDRESS) - .toList()); + this.bcc.addAll(Arrays.asList(bccs) + .stream() + .map(TO_INTERNET_ADDRESS) + .collect(Guavate.toImmutableList())); return this; } http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java ---------------------------------------------------------------------- diff --git a/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java b/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java index 73a7957..2361eea 100644 --- a/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java +++ b/mailet/mailetdocs-maven-plugin/src/main/java/org/apache/james/mailet/DefaultDescriptorsExtractor.java @@ -29,6 +29,7 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Set; +import java.util.stream.Stream; import org.apache.james.mailet.MailetMatcherDescriptor.Type; import org.apache.mailet.Experimental; @@ -39,7 +40,6 @@ import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; -import com.google.common.collect.FluentIterable; import com.thoughtworks.qdox.JavaDocBuilder; import com.thoughtworks.qdox.model.JavaClass; @@ -182,7 +182,7 @@ public class DefaultDescriptorsExtractor { private boolean isExperimental(JavaClass javaClass) { - return FluentIterable.of(javaClass.getAnnotations()) + return Stream.of(javaClass.getAnnotations()) .anyMatch(annotation -> annotation.getType().getValue() .equals(Experimental.class.getName())); } http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java ---------------------------------------------------------------------- diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java index f5496b7..4a12bf8 100644 --- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java +++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecipientToLowerCase.java @@ -19,7 +19,6 @@ package org.apache.james.transport.mailets; import java.util.Locale; - import javax.mail.MessagingException; import javax.mail.internet.AddressException; @@ -27,8 +26,9 @@ import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; import org.apache.mailet.base.GenericMailet; +import com.github.steveash.guavate.Guavate; import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; + /** * {@link GenericMailet} which convert all Recipients to lowercase @@ -39,9 +39,9 @@ public class RecipientToLowerCase extends GenericMailet{ @Override public void service(Mail mail) throws MessagingException { - mail.setRecipients(FluentIterable.from(mail.getRecipients()) - .transform(this::toLowerCase) - .toList()); + mail.setRecipients(mail.getRecipients().stream() + .map(this::toLowerCase) + .collect(Guavate.toImmutableList())); } private MailAddress toLowerCase(MailAddress mailAddress) { http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/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 543959e..7b2b6a6 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 javax.mail.MessagingException; import javax.mail.internet.AddressException; import javax.mail.internet.MimeMessage; @@ -41,9 +40,9 @@ import org.apache.mailet.base.GenericMailet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.github.steveash.guavate.Guavate; import com.google.common.base.Splitter; import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; /** @@ -174,15 +173,10 @@ public class UseHeaderRecipients extends GenericMailet { AddressList addressList = LenientAddressParser.DEFAULT .parseAddressList(MimeUtil.unfold(headerPart)); - ImmutableList.Builder<Mailbox> mailboxList = ImmutableList.builder(); - - for (Address address: addressList) { - mailboxList.addAll(convertAddressToMailboxCollection(address)); - } - - return FluentIterable.from(mailboxList.build()) - .transform(this::toMailAddress) - .toList(); + return addressList.stream() + .flatMap(address -> convertAddressToMailboxCollection(address).stream()) + .map(this::toMailAddress) + .collect(Guavate.toImmutableList()); } private MailAddress toMailAddress(Mailbox mailbox) { http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/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 fb78101..802e79d 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 @@ -20,31 +20,32 @@ package org.apache.james.transport.matchers.utils; import java.util.Set; - import javax.mail.internet.AddressException; import org.apache.mailet.MailAddress; +import com.github.steveash.guavate.Guavate; import com.google.common.base.Preconditions; import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; + public class MailAddressCollectionReader { public static Set<MailAddress> read(String condition) { Preconditions.checkArgument(!Strings.isNullOrEmpty(condition)); - return FluentIterable.from(Splitter.onPattern("(,| |\t)") - .split(condition)) + return Splitter.onPattern("(,| |\t)").splitToList(condition) + .stream() .filter(s -> !Strings.isNullOrEmpty(s)) - .transform(s -> { + .map(s -> { try { return new MailAddress(s); } catch (AddressException e) { throw Throwables.propagate(e); } - }).toSet(); + }) + .collect(Guavate.toImmutableSet()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/5d43d19e/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java ---------------------------------------------------------------------- diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java index dd53140..02a8e0a 100644 --- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java +++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java @@ -52,7 +52,6 @@ import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; import com.google.common.base.Charsets; -import com.google.common.collect.FluentIterable; public class StripAttachmentTest { @@ -235,9 +234,9 @@ public class StripAttachmentTest { } private String retrieveFilenameStartingWith(Collection<String> savedAttachments, final String filename) { - return FluentIterable.from(savedAttachments) + return savedAttachments.stream() .filter(attachmentFilename -> attachmentFilename.startsWith(filename)) - .first() + .findFirst() .get(); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org