MAILET-154 Adding more capabilities to MimeMessageBuilder Also correct setText 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/f8506f76 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f8506f76 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f8506f76 Branch: refs/heads/master Commit: f8506f768406489927d23318d0b136d3dbfd0d03 Parents: 49b9951 Author: benwa <btell...@linagora.com> Authored: Fri Apr 7 09:50:42 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Mon Apr 10 17:22:16 2017 +0700 ---------------------------------------------------------------------- .../org/apache/mailet/base/test/MailUtil.java | 2 +- .../mailet/base/test/MimeMessageBuilder.java | 37 +++++++++++++++----- .../mailets/ICALToJsonAttributeTest.java | 4 +-- .../transport/mailets/StripAttachmentTest.java | 4 +-- 4 files changed, 32 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java ---------------------------------------------------------------------- diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java index 4758d77..17f26f6 100644 --- a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java +++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java @@ -72,7 +72,7 @@ public class MailUtil { private static MimeMessage createMimeMessage(String headerName, String headerValue, String subject) throws MessagingException { MimeMessageBuilder mimeMessageBuilder = MimeMessageBuilder.mimeMessageBuilder() .addToRecipient(RECIPIENT) - .setFrom(SENDER) + .addFrom(SENDER) .setSubject(subject); if (headerName != null) { mimeMessageBuilder.addHeader(headerName, headerValue); http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/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 c75136d..666803a 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 @@ -209,8 +209,8 @@ public class MimeMessageBuilder { private Optional<String> text = Optional.absent(); private Optional<String> subject = Optional.absent(); private Optional<InternetAddress> sender = Optional.absent(); - private Optional<InternetAddress> from = Optional.absent(); private Optional<MimeMultipart> content = Optional.absent(); + private ImmutableList.Builder<InternetAddress> from = ImmutableList.builder(); private ImmutableList.Builder<InternetAddress> cc = ImmutableList.builder(); private ImmutableList.Builder<InternetAddress> to = ImmutableList.builder(); private ImmutableList.Builder<InternetAddress> bcc = ImmutableList.builder(); @@ -236,8 +236,13 @@ public class MimeMessageBuilder { return this; } - public MimeMessageBuilder setFrom(String from) throws AddressException { - this.from = Optional.of(new InternetAddress(from)); + public MimeMessageBuilder addFrom(String from) throws AddressException { + this.from.add(new InternetAddress(from)); + return this; + } + + public MimeMessageBuilder addFrom(InternetAddress... from) throws AddressException { + this.from.addAll(Arrays.asList(from)); return this; } @@ -272,6 +277,21 @@ public class MimeMessageBuilder { return this; } + public MimeMessageBuilder addToRecipient(InternetAddress... tos) throws AddressException { + this.to.addAll(Arrays.asList(tos)); + return this; + } + + public MimeMessageBuilder addCcRecipient(InternetAddress... ccs) throws AddressException { + this.cc.addAll(Arrays.asList(ccs)); + return this; + } + + public MimeMessageBuilder addBccRecipient(InternetAddress... bccs) throws AddressException { + this.bcc.addAll(Arrays.asList(bccs)); + return this; + } + public MimeMessageBuilder setContent(MimeMultipart mimeMultipart) { this.content = Optional.of(mimeMultipart); return this; @@ -305,9 +325,7 @@ public class MimeMessageBuilder { Preconditions.checkState(!(text.isPresent() && content.isPresent()), "Can not get at the same time a text and a content"); MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties())); if (text.isPresent()) { - BodyPart bodyPart = new MimeBodyPart(); - bodyPart.setText(text.get()); - mimeMessage.setContent(bodyPart, "text/plain"); + mimeMessage.setContent(text.get(), "text/plain"); } if (content.isPresent()) { mimeMessage.setContent(content.get()); @@ -315,12 +333,13 @@ public class MimeMessageBuilder { if (sender.isPresent()) { mimeMessage.setSender(sender.get()); } - if (from.isPresent()) { - mimeMessage.setFrom(from.get()); - } if (subject.isPresent()) { mimeMessage.setSubject(subject.get()); } + ImmutableList<InternetAddress> fromAddresses = from.build(); + if (!fromAddresses.isEmpty()) { + mimeMessage.addFrom(fromAddresses.toArray(new InternetAddress[fromAddresses.size()])); + } List<InternetAddress> toAddresses = to.build(); if (!toAddresses.isEmpty()) { mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses.toArray(new InternetAddress[toAddresses.size()])); http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java ---------------------------------------------------------------------- diff --git a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java index 76147ee..5538b15 100644 --- a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java +++ b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java @@ -444,7 +444,7 @@ public class ICALToJsonAttributeTest { .sender(SENDER) .recipient(recipient) .mimeMessage(MimeMessageBuilder.mimeMessageBuilder() - .setFrom(from) + .addFrom(from) .build()) .attribute(ICALToJsonAttribute.DEFAULT_SOURCE_ATTRIBUTE_NAME, icals) .attribute(ICALToJsonAttribute.DEFAULT_RAW_SOURCE_ATTRIBUTE_NAME, rawIcals) @@ -515,7 +515,7 @@ public class ICALToJsonAttributeTest { Mail mail = FakeMail.builder() .recipient(recipient) .mimeMessage(MimeMessageBuilder.mimeMessageBuilder() - .setFrom(from) + .addFrom(from) .build()) .attribute(ICALToJsonAttribute.DEFAULT_SOURCE_ATTRIBUTE_NAME, icals) .attribute(ICALToJsonAttribute.DEFAULT_RAW_SOURCE_ATTRIBUTE_NAME, rawIcals) http://git-wip-us.apache.org/repos/asf/james-project/blob/f8506f76/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 5995f98..271e45e 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 @@ -53,7 +53,6 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.rules.TemporaryFolder; -import com.google.common.base.Charsets; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; @@ -125,8 +124,7 @@ public class StripAttachmentTest { mailet.service(mail); assertThat(mail).isEqualToComparingFieldByField(expectedMail); - BodyPart content = (BodyPart) mail.getMessage().getContent(); - assertThat(IOUtils.toString(content.getInputStream(), Charsets.UTF_8)).isEqualTo("simple text"); + assertThat(mail.getMessage().getContent()).isEqualTo("simple text"); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org