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 2018/01/22 00:56:10 UTC

[1/5] james-project git commit: JAMES-2284 Move methods from interface to implementation (deprecate the interface)

Repository: james-project
Updated Branches:
  refs/heads/master a5f014f2d -> 0ae36b298


JAMES-2284 Move methods from interface to implementation (deprecate the interface)


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

Branch: refs/heads/master
Commit: c3a109a71082bb4b11446f5fe53b9ba6343a3221
Parents: a5f014f
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Jan 18 15:50:47 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:47:24 2018 +0700

----------------------------------------------------------------------
 .../mailrepository/lib/AbstractMailRepository.java  | 14 ++++++++++++--
 .../james/mailrepository/api/MailRepository.java    | 16 ++++------------
 2 files changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c3a109a7/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java b/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
index f59a36a..7778880 100644
--- a/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
@@ -60,14 +60,24 @@ public abstract class AbstractMailRepository implements MailRepository, Configur
     }
 
     /**
-     * @see org.apache.james.mailrepository.api.MailRepository#unlock(String)
+     * Releases a lock on a message identified the key
+     * 
+     * @param key
+     *            the key of the message to be unlocked
+     * 
+     * @return true if successfully released the lock, false otherwise
      */
     public boolean unlock(String key) {
         return lock.unlock(key);
     }
 
     /**
-     * @see org.apache.james.mailrepository.api.MailRepository#lock(String)
+     * Obtains a lock on a message identified by key
+     * 
+     * @param key
+     *            the key of the message to be locked
+     * 
+     * @return true if successfully obtained the lock, false otherwise
      */
     public boolean lock(String key) {
         return lock.lock(key);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c3a109a7/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
index aa2ff34..e1a4092 100644
--- a/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
+++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
@@ -85,22 +85,14 @@ public interface MailRepository {
     void remove(String key) throws MessagingException;
 
     /**
-     * Obtains a lock on a message identified by key
-     * 
-     * @param key
-     *            the key of the message to be locked
-     * 
-     * @return true if successfully obtained the lock, false otherwise
+     * @deprecated This method is implementation dependent, it has been moved to org.apache.james.mailrepository.lib.AbstractMailRepository
      */
+    @Deprecated
     boolean lock(String key) throws MessagingException;
 
     /**
-     * Releases a lock on a message identified the key
-     * 
-     * @param key
-     *            the key of the message to be unlocked
-     * 
-     * @return true if successfully released the lock, false otherwise
+     * @deprecated This method is implementation dependent, it has been moved to org.apache.james.mailrepository.lib.AbstractMailRepository
      */
+    @Deprecated
     boolean unlock(String key) throws MessagingException;
 }


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


[4/5] james-project git commit: JAMES-2305 Limit uses of MimeMessage constructor throughout the code base

Posted by bt...@apache.org.
JAMES-2305 Limit uses of MimeMessage constructor throughout the code base


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

Branch: refs/heads/master
Commit: 7244396c87f7d025de6c1a18a48d12e328ab0d65
Parents: f9b0864
Author: benwa <bt...@linagora.com>
Authored: Tue Jan 16 15:03:17 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:47:52 2018 +0700

----------------------------------------------------------------------
 .../AutomaticallySentMailDetectorImplTest.java  | 79 ++++++++---------
 .../org/apache/mailet/base/test/FakeMail.java   | 12 +--
 .../mailet/base/test/MimeMessageUtil.java       |  4 +
 .../transport/mailets/ContactExtractorTest.java |  6 +-
 .../james/transport/mailets/LogMessageTest.java | 26 +++---
 .../transport/mailets/ReplaceContentTest.java   | 62 +++++--------
 .../transport/mailets/SetMailAttributeTest.java | 11 +--
 .../mailets/utils/MimeMessageModifierTest.java  | 13 +--
 .../transport/matchers/HasAttachmentTest.java   |  6 +-
 .../james/transport/matchers/HasHeaderTest.java | 22 ++---
 .../transport/matchers/RelayLimitTest.java      |  6 +-
 .../apache/james/server/core/MailImplTest.java  |  8 +-
 .../core/MimeMessageCopyOnWriteProxyTest.java   | 19 ++--
 .../core/MimeMessageFromSharedStreamTest.java   |  8 +-
 .../james/server/core/MimeMessageTest.java      | 28 +++---
 .../james/transport/mailets/BounceTest.java     | 57 +++++-------
 .../james/transport/mailets/DSNBounceTest.java  | 93 +++++++++-----------
 .../james/transport/mailets/ForwardTest.java    |  9 +-
 .../transport/mailets/NotifyPostmasterTest.java |  9 +-
 .../transport/mailets/NotifySenderTest.java     | 13 +--
 .../RecipientRewriteTableProcessorTest.java     |  5 +-
 .../mailets/RecipientRewriteTableTest.java      |  6 +-
 .../james/transport/mailets/RedirectTest.java   | 54 +++++-------
 .../james/transport/mailets/ResendTest.java     | 23 ++---
 .../redirect/NotifyMailetsMessageTest.java      | 85 +++++++-----------
 .../transport/util/RecipientsUtilsTest.java     | 13 ++-
 .../util/SpecialAddressesUtilsTest.java         | 36 ++++----
 .../james/transport/util/TosUtilsTest.java      | 10 +--
 .../TextCalendarBodyToAttachmentTest.java       | 13 ++-
 .../james/jmap/mailet/VacationReplyTest.java    |  8 +-
 .../utils/MimeMessageBodyGeneratorTest.java     |  5 +-
 31 files changed, 315 insertions(+), 434 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
index 864535f..3361c39 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/AutomaticallySentMailDetectorImplTest.java
@@ -21,7 +21,6 @@ package org.apache.mailet.base;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.ByteArrayInputStream;
 import java.util.Collections;
 import java.util.Properties;
 
@@ -34,6 +33,7 @@ import javax.mail.util.ByteArrayDataSource;
 
 import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Test;
 
 public class AutomaticallySentMailDetectorImplTest {
@@ -53,7 +53,8 @@ public class AutomaticallySentMailDetectorImplTest {
             new AutomaticallySentMailDetectorImpl()
                 .isAutomaticallySent(FakeMail.builder()
                     .sender(MailAddressFixture.ANY_AT_JAMES)
-                    .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream("".getBytes())))
+                    .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                        .setText("any"))
                     .build()))
             .isFalse();
     }
@@ -105,47 +106,43 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void listIdShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Id", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Id", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listHelpShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Help", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Help", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listSubscribeShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Subscribe", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Subscribe", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listUnsubscribeShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Unsubscribe", "any");
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("List-Unsubscribe", "any"))
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
@@ -153,36 +150,35 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void listPostShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Post", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Post", "any"))
+            .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listOwnerShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Owner", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Owner", "any"))
+            .build();
+
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
 
     @Test
     public void listArchiveShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("List-Archive", "any");
         FakeMail fakeMail = FakeMail.builder()
-                .sender("any@any.com")
-                .mimeMessage(message)
-                .build();
+            .sender("any@any.com")
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .addHeader("List-Archive", "any"))
+            .build();
+
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isTrue();
     }
@@ -191,7 +187,7 @@ public class AutomaticallySentMailDetectorImplTest {
     public void normalMailShouldNotBeIdentifiedAsMailingList() throws Exception {
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isMailingList(fakeMail)).isFalse();
@@ -200,7 +196,7 @@ public class AutomaticallySentMailDetectorImplTest {
     @Test
     public void isAutoSubmittedShouldNotMatchNonAutoSubmittedMails() throws Exception {
         FakeMail fakeMail = FakeMail.builder()
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isAutoSubmitted(fakeMail)).isFalse();
@@ -208,11 +204,10 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isAutoSubmittedShouldBeDetected() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setHeader("Auto-Submitted", "auto-replied");
         FakeMail fakeMail = FakeMail.builder()
                 .sender("any@any.com")
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("Auto-Submitted", "auto-replied"))
                 .build();
 
         assertThat(new AutomaticallySentMailDetectorImpl().isAutoSubmitted(fakeMail)).isTrue();
@@ -243,7 +238,7 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isMdnSentAutomaticallyShouldNotFilterManuallySentMdn() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         MimeMultipart multipart = new MimeMultipart();
         MimeBodyPart scriptPart = new MimeBodyPart();
         scriptPart.setDataHandler(
@@ -266,7 +261,7 @@ public class AutomaticallySentMailDetectorImplTest {
 
     @Test
     public void isMdnSentAutomaticallyShouldManageItsMimeType() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         MimeMultipart multipart = new MimeMultipart();
         MimeBodyPart scriptPart = new MimeBodyPart();
         scriptPart.setDataHandler(

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
index 0c71c2b..8de6b12 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/FakeMail.java
@@ -20,7 +20,6 @@
 
 package org.apache.mailet.base.test;
 
-import java.io.ByteArrayInputStream;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
@@ -33,7 +32,6 @@ import java.util.Optional;
 import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
@@ -69,9 +67,7 @@ public class FakeMail implements Mail, Serializable {
         Properties javamailProperties = new Properties();
         javamailProperties.setProperty("mail.mime.charset", javamailDefaultEncodingCharset);
         return FakeMail.builder()
-                .mimeMessage(new MimeMessage(
-                    Session.getInstance(javamailProperties),
-                    new ByteArrayInputStream(text.getBytes(javaEncodingCharset))))
+                .mimeMessage(MimeMessageUtil.mimeMessageFromBytes((text.getBytes(javaEncodingCharset))))
                 .build();
     }
 
@@ -96,6 +92,10 @@ public class FakeMail implements Mail, Serializable {
                 .build();
     }
 
+    public static FakeMail from(MimeMessageBuilder message) throws MessagingException {
+        return from(message.build());
+    }
+
     public static Builder builder() {
         return new Builder();
     }
@@ -241,7 +241,7 @@ public class FakeMail implements Mail, Serializable {
         private MimeMessage getMimeMessage() throws MessagingException {
             Preconditions.checkState(!(fileName.isPresent() && mimeMessage.isPresent()), "You can not specify a MimeMessage object when you alredy set Content from a file");
             if (fileName.isPresent()) {
-                return new MimeMessage(Session.getInstance(new Properties()), ClassLoader.getSystemResourceAsStream(fileName.get()));
+                return MimeMessageUtil.mimeMessageFromStream(ClassLoader.getSystemResourceAsStream(fileName.get()));
             }
             return mimeMessage.orElse(null);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
index e857dea..d81424a 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageUtil.java
@@ -48,4 +48,8 @@ public class MimeMessageUtil {
         return mimeMessageFromStream(new ByteArrayInputStream(bytes));
     }
 
+    public static MimeMessage mimeMessageFromString(String string) throws MessagingException {
+        return mimeMessageFromBytes(string.getBytes(StandardCharsets.UTF_8));
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
index 6ac877b..9d87c0d 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
@@ -165,7 +165,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")
@@ -185,7 +185,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")
@@ -205,7 +205,7 @@ public class ContactExtractorTest {
             + "Subject: extract this recipient please\r\n"
             + "\r\n"
             + "Please!";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromBytes(rawMessage.getBytes());
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(rawMessage);
         FakeMail mail = FakeMail.builder().mimeMessage(message)
             .sender(SENDER)
             .recipient("recipient@example.com")

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index 14b08da..88fb7e9 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -28,19 +28,15 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.AddressException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -90,11 +86,11 @@ public class LogMessageTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
         mailet.service(FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addHeader("Date", "Tue, 16 Jan 2018 10:23:03 +0100")
+                    .setSubject("subject")
+                    .setText("This is a fake mail"))
                 .build());
 
         verify(logger).info("Logging mail {}", (Object) null);
@@ -102,7 +98,6 @@ public class LogMessageTest {
         verify(logger).info("\n");
         verify(logger).info("Subject: subject\n");
         verify(logger).error(eq("Error logging message."), any(MessagingException.class));
-        verifyNoMoreInteractions(logger);
     }
 
     @Test
@@ -254,9 +249,12 @@ public class LogMessageTest {
         verifyNoMoreInteractions(logger);
     }
 
-    private FakeMail createMail() throws MessagingException, AddressException {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()),
-                new ByteArrayInputStream("Subject: subject\r\nContent-Type: text/plain\r\n\r\nThis is a fake mail".getBytes(StandardCharsets.UTF_8)));
+    private FakeMail createMail() throws MessagingException {
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(
+            "Subject: subject\r\n" +
+                "Content-Type: text/plain\r\n" +
+                "\r\n" +
+                "This is a fake mail");
         return FakeMail.builder()
                 .mimeMessage(message)
                 .name("name")

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
index 1611f30..28fc3f4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ReplaceContentTest.java
@@ -21,16 +21,15 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.io.ByteArrayInputStream;
 import java.nio.charset.StandardCharsets;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -61,11 +60,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test"))
                 .build();
         mailet.service(mail);
 
@@ -86,12 +83,10 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("This is one simple test/ è one simple test.\n"
-                + "Blo blo blo blo.\n");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("This is one simple test/ è one simple test.\n"
+                        + "Blo blo blo blo.\n"))
                 .build();
         mailet.service(mail);
 
@@ -107,11 +102,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("aaa");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("aaa"))
                 .build();
         mailet.service(mail);
 
@@ -126,11 +119,9 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("re: r:ri:one test");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("re: r:ri:one test"))
                 .build();
         mailet.service(mail);
 
@@ -147,13 +138,11 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setText("Test.\r\n" + "\r\n" + "--original message--\r\n"
-                + "part of\r\n" + "message\\ that\\0 must0 be\r\n"
-                + "quoted. Let's see if\r\n" + "he can do it.");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("Test.\r\n" + "\r\n" + "--original message--\r\n"
+                        + "part of\r\n" + "message\\ that\\0 must0 be\r\n"
+                        + "quoted. Let's see if\r\n" + "he can do it."))
                 .build();
         mailet.service(mail);
 
@@ -171,12 +160,10 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-        message.setText("Replacement … one test …");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test")
+                    .setText("Replacement … one test …"))
                 .build();
         mailet.service(mail);
 
@@ -199,8 +186,7 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()),
-                new ByteArrayInputStream(messageSource.getBytes()));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageSource);
 
         Mail mail = FakeMail.builder()
                 .mimeMessage(message)
@@ -219,13 +205,11 @@ public class ReplaceContentTest {
                 .build();
         mailet.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("one test");
-        message.setText("This is one simple test/ è one simple test.\n"
-                + "Blo blo blo blo.\n");
-
         Mail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("one test")
+                    .setText("This is one simple test/ è one simple test.\n"
+                        + "Blo blo blo blo.\n"))
                 .build();
         mailet.service(mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
index f7423da..ceffcce 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/SetMailAttributeTest.java
@@ -22,16 +22,13 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -58,7 +55,7 @@ public class SetMailAttributeTest {
 
         mailet.init(mailetConfig);
 
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         
         mailet.service(mail);
 
@@ -74,7 +71,7 @@ public class SetMailAttributeTest {
      
         mailet.init(mailetConfig);
 
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         
         mailet.service(mail);
 
@@ -90,7 +87,7 @@ public class SetMailAttributeTest {
         
         mailet.init(mailetConfig);
         
-        Mail mail = MailUtil.createMockMail2Recipients(new MimeMessage(Session.getDefaultInstance(new Properties())));
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageUtil.defaultMimeMessage());
         mail.setAttribute("org.apache.james.junit1", "foo");
         
         mailet.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
index 413a9bb..081d10f 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageModifierTest.java
@@ -22,19 +22,19 @@ package org.apache.james.transport.mailets.utils;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.Optional;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.junit.Test;
 
 public class MimeMessageModifierTest {
 
     @Test
     public void replaceSubjectShouldReplaceTheSubjectWhenSubjectIsPresent() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .build();
 
         String expectedSubject = "new subject";
         new MimeMessageModifier(message).replaceSubject(Optional.of(expectedSubject));
@@ -44,9 +44,10 @@ public class MimeMessageModifierTest {
 
     @Test
     public void replaceSubjectShouldNotAlterTheSubjectWhenSubjectIsAbsent() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
         String expectedSubject = "subject";
-        message.setSubject(expectedSubject);
+        MimeMessage message = MimeMessageBuilder.mimeMessageBuilder()
+                .setSubject(expectedSubject)
+                .build();
 
         new MimeMessageModifier(message).replaceSubject(Optional.empty());
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
index cc4b698..5e76266 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasAttachmentTest.java
@@ -24,15 +24,13 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -46,7 +44,7 @@ public class HasAttachmentTest {
     public void setUp() throws Exception {
         testee = new HasAttachment();
 
-        mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mimeMessage = MimeMessageUtil.defaultMimeMessage();
         mail = FakeMail.builder()
             .recipient(ANY_AT_JAMES)
             .mimeMessage(mimeMessage)

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
index d46daf8..1b79c46 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderTest.java
@@ -22,12 +22,10 @@ package org.apache.james.transport.matchers;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Matcher;
 import org.apache.mailet.base.test.FakeMail;
@@ -188,11 +186,10 @@ public class HasHeaderTest {
                 .condition(HEADER_NAME_1 + "+" + HEADER_NAME_2)
                 .build());
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
-        mimeMessage.addHeader(HEADER_NAME_2, HEADER_VALUE_2);
-        mimeMessage.saveChanges();
-        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_1)
+            .addHeader(HEADER_NAME_2, HEADER_VALUE_2)
+            .build());
 
         assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
     }
@@ -204,11 +201,10 @@ public class HasHeaderTest {
                 .condition(HEADER_NAME_1 + "=" + HEADER_VALUE_2)
                 .build());
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_1);
-        mimeMessage.addHeader(HEADER_NAME_1, HEADER_VALUE_2);
-        mimeMessage.saveChanges();
-        Mail mail = MailUtil.createMockMail2Recipients(mimeMessage);
+        Mail mail = MailUtil.createMockMail2Recipients(MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_1)
+            .addHeader(HEADER_NAME_1, HEADER_VALUE_2)
+            .build());
 
         assertThat(matcher.match(mail)).containsAll(mockedMail.getRecipients());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
index 6ffe14c..ad3f709 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/RelayLimitTest.java
@@ -22,16 +22,14 @@ package org.apache.james.transport.matchers;
 import static org.apache.mailet.base.MailAddressFixture.ANY_AT_JAMES;
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -44,7 +42,7 @@ public class RelayLimitTest {
     @Before
     public void setUp() throws Exception {
         testee = new RelayLimit();
-        mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mimeMessage = MimeMessageUtil.defaultMimeMessage();
         mail = FakeMail.builder()
                 .recipient(ANY_AT_JAMES)
                 .mimeMessage(mimeMessage)

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
index 8ecfcad..3cbaabf 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MailImplTest.java
@@ -21,7 +21,6 @@ package org.apache.james.server.core;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Date;
@@ -29,10 +28,10 @@ import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.MailUtil;
 import org.junit.Before;
@@ -43,12 +42,13 @@ import com.google.common.collect.ImmutableList;
 
 public class MailImplTest {
 
-    private static final Session NO_SESSION = null;
     private MimeMessage emptyMessage;
 
     @Before
     public void setup() throws MessagingException {
-        emptyMessage = new MimeMessage(NO_SESSION, new ByteArrayInputStream(new byte[0]));
+        emptyMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("")
+            .build();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
index 1b13bbf..9543d72 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxyTest.java
@@ -27,14 +27,13 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.mailet.Mail;
 import org.junit.Test;
@@ -49,8 +48,6 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
     protected MimeMessage getMessageFromSources(String sources) throws Exception {
         MimeMessageInputStreamSource mmis = new MimeMessageInputStreamSource("test", new SharedByteArrayInputStream(sources.getBytes()));
         return new MimeMessageCopyOnWriteProxy(mmis);
-        // return new MimeMessage(Session.getDefaultInstance(new
-        // Properties()),new ByteArrayInputStream(sources.getBytes()));
     }
 
     @Test
@@ -169,10 +166,12 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
     public void testMessageCloning3() throws Exception {
         ArrayList<MailAddress> r = new ArrayList<>();
         r.add(new MailAddress("recipient@test.com"));
-        MimeMessage m = new MimeMessage(Session.getDefaultInstance(new Properties(null)));
-        m.setText("CIPS");
-        MailImpl mail = new MailImpl("test", new MailAddress("test@test.com"), r, m);
-        assertTrue(isSameMimeMessage(m, mail.getMessage()));
+        MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("CIPS")
+            .build();
+        MailImpl mail = new MailImpl("test", new MailAddress("test@test.com"), r,
+            mimeMessage);
+        assertTrue(isSameMimeMessage(mimeMessage, mail.getMessage()));
         // change the message that should be not referenced by mail that has
         // been disposed, so it should not clone it!
         System.gc();
@@ -181,9 +180,9 @@ public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest {
         mail.getMessage().setText("new Body 3");
         System.gc();
         Thread.sleep(100);
-        assertFalse(isSameMimeMessage(m, mail.getMessage()));
+        assertFalse(isSameMimeMessage(mimeMessage, mail.getMessage()));
         LifecycleUtil.dispose(mail);
-        LifecycleUtil.dispose(m);
+        LifecycleUtil.dispose(mimeMessage);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
index eb79ce0..894db47 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromSharedStreamTest.java
@@ -19,17 +19,15 @@
 
 package org.apache.james.server.core;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
-import javax.mail.util.SharedByteArrayInputStream;
+
+import org.apache.mailet.base.test.MimeMessageUtil;
 
 public class MimeMessageFromSharedStreamTest extends MimeMessageFromStreamTest {
 
     @Override
     protected MimeMessage getMessageFromSources(String sources) throws Exception {
-        return new MimeMessage(Session.getDefaultInstance(new Properties()), new SharedByteArrayInputStream(sources.getBytes()));
+        return MimeMessageUtil.mimeMessageFromString(sources);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
index 2c73e85..7134a4a 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
@@ -36,8 +36,10 @@ import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.mailet.base.RFC2822Headers;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Test;
 
 /**
@@ -46,12 +48,11 @@ import org.junit.Test;
 public class MimeMessageTest {
 
     protected MimeMessage getSimpleMessage() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
-        mmCreated.setSubject("test");
-        mmCreated.setText("test body");
-        mmCreated.saveChanges();
-        return mmCreated;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)")
+            .setSubject("test")
+            .setText("test body")
+            .build();
     }
 
     protected String getSimpleMessageCleanedSource() {
@@ -65,13 +66,12 @@ public class MimeMessageTest {
     }
 
     protected MimeMessage getMessageWithBadReturnPath() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
-        mmCreated.setSubject("test");
-        mmCreated.setHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>");
-        mmCreated.setText("test body");
-        mmCreated.saveChanges();
-        return mmCreated;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)")
+            .setSubject("test")
+            .addHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>")
+            .setText("test body")
+            .build();
     }
 
     protected String getMessageWithBadReturnPathSource() {
@@ -100,7 +100,7 @@ public class MimeMessageTest {
     }
 
     protected MimeMessage getMultipartMessage() throws Exception {
-        MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage mmCreated = MimeMessageUtil.defaultMimeMessage();
         mmCreated.setSubject("test");
         mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
         MimeMultipart mm = new MimeMultipart("alternative");

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
index 028b605..cdde96b 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/BounceTest.java
@@ -24,20 +24,17 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -110,13 +107,12 @@ public class BounceTest {
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
         FakeMail mail = FakeMail.builder()
-                .sender(senderMailAddress)
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-        MimeMessage mimeMessage = MimeMessageUtil.defaultMimeMessage();
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .sender(senderMailAddress)
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -137,13 +133,11 @@ public class BounceTest {
         bounce.init(mailetConfig);
 
         FakeMail mail = FakeMail.builder()
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -161,14 +155,12 @@ public class BounceTest {
 
         String initialState = "initial";
         FakeMail mail = FakeMail.builder()
-                .state(initialState)
-                .name(MAILET_NAME)
-                .recipient(MailAddressFixture.ANY_AT_JAMES)
-                .build();
-
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mail.setMessage(mimeMessage);
+            .state(initialState)
+            .name(MAILET_NAME)
+            .recipient(MailAddressFixture.ANY_AT_JAMES)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setText("My content"))
+            .build();
 
         bounce.service(mail);
 
@@ -184,14 +176,13 @@ public class BounceTest {
                 .build();
         bounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
-                .name(MAILET_NAME)
-                .sender(MailAddressFixture.ANY_AT_JAMES)
-                .recipient(MailAddressFixture.ANY_AT_JAMES2)
-                .mimeMessage(mimeMessage)
-                .build();
+            .name(MAILET_NAME)
+            .sender(MailAddressFixture.ANY_AT_JAMES)
+            .recipient(MailAddressFixture.ANY_AT_JAMES2)
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                .setSubject("My subject"))
+            .build();
 
         bounce.service(mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
index b440830..fd4a233 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/DSNBounceTest.java
@@ -26,15 +26,14 @@ import static org.mockito.Mockito.when;
 
 import java.net.InetAddress;
 import java.util.List;
-import java.util.Properties;
 import java.util.TimeZone;
 
 import javax.mail.BodyPart;
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.Mail;
@@ -122,11 +121,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -153,12 +151,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -195,12 +192,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -235,12 +231,11 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -275,11 +270,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -299,11 +293,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -324,11 +317,10 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .attribute("delivery-error", "Delivery error")
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -350,11 +342,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -382,15 +373,16 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
+        MimeMessage mimeMessage = MimeMessageBuilder.mimeMessageBuilder()
+            .setText("My content")
+            .build();
         FakeMail mail = FakeMail.builder()
-                .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
-                .name(MAILET_NAME)
-                .recipient("recipient@domain.com")
-                .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
-                .build();
+            .sender(senderMailAddress)
+            .name(MAILET_NAME)
+            .recipient("recipient@domain.com")
+            .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
+            .mimeMessage(mimeMessage)
+            .build();
 
         dsnBounce.service(mail);
 
@@ -414,13 +406,12 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
-        mimeMessage.setHeader("myHeader", "myValue");
-        mimeMessage.setSubject("mySubject");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content")
+                    .addHeader("myHeader", "myValue")
+                    .setSubject("mySubject"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -436,8 +427,9 @@ public class DSNBounceTest {
         MimeMessage sentMessage = sentMail.getMsg();
         MimeMultipartReport content = (MimeMultipartReport) sentMessage.getContent();
         BodyPart bodyPart = content.getBodyPart(2);
-        assertThat(bodyPart.getContent()).isEqualTo("Subject: mySubject\r\n" +
-                "myHeader: myValue\r\n");
+        assertThat((String) bodyPart.getContent())
+            .contains("Subject: mySubject")
+            .contains("myHeader: myValue");
         assertThat(bodyPart.getContentType()).isEqualTo("text/rfc822-headers; name=mySubject");
     }
 
@@ -450,11 +442,10 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content"))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -480,13 +471,12 @@ public class DSNBounceTest {
         dsnBounce.init(mailetConfig);
 
         MailAddress senderMailAddress = new MailAddress("sender@domain.com");
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setText("My content");
         String expectedDate = "Wed, 28 Sep 2016 14:25:52 +0000 (UTC)";
-        mimeMessage.setHeader(RFC2822Headers.DATE, expectedDate);
         FakeMail mail = FakeMail.builder()
                 .sender(senderMailAddress)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setText("My content")
+                    .addHeader(RFC2822Headers.DATE, expectedDate))
                 .name(MAILET_NAME)
                 .recipient("recipient@domain.com")
                 .lastUpdated(DateTime.parse("2016-09-08T14:25:52.000Z").toDate())
@@ -512,16 +502,15 @@ public class DSNBounceTest {
                 .build();
         dsnBounce.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         dsnBounce.service(mail);
 
         assertThat(mail.getMessage().getSubject()).isEqualTo("pre My subject");
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
index 3d18abe..15fa49c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ForwardTest.java
@@ -25,13 +25,11 @@ import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
 import java.util.Collection;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -208,13 +206,12 @@ public class ForwardTest {
                 .build();
         forward.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
         String expectedSubject = "My subject";
-        mimeMessage.setSubject(expectedSubject);
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         forward.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
index 5cfdd6c..64c4174 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifyPostmasterTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.MailAddressFixture;
@@ -154,12 +152,11 @@ public class NotifyPostmasterTest {
                 .build();
         notifyPostmaster.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         notifyPostmaster.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
index 145dd4e..ddf83e9 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/NotifySenderTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.MailAddressFixture;
@@ -50,16 +48,14 @@ public class NotifySenderTest {
     public ExpectedException expectedException = ExpectedException.none();
 
     private NotifySender notifySender;
-    private MailAddress postmaster;
     private FakeMailContext fakeMailContext;
 
     @Before
     public void setUp() throws Exception {
         DNSService dnsService = mock(DNSService.class);
         notifySender = new NotifySender(dnsService);
-        postmaster = new MailAddress("postmaster@james.org");
         fakeMailContext = FakeMailContext.builder()
-                .postmaster(postmaster)
+                .postmaster(new MailAddress("postmaster@james.org"))
                 .build();
 
         when(dnsService.getLocalHost()).thenThrow(new UnknownHostException());
@@ -166,12 +162,11 @@ public class NotifySenderTest {
                 .build();
         notifySender.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject"))
                 .build();
 
         notifySender.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
index ae97e36..3d6a79c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
@@ -25,10 +25,8 @@ import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.when;
 
 import java.util.Collection;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
@@ -41,6 +39,7 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -73,7 +72,7 @@ public class RecipientRewriteTableProcessorTest {
         mappings = MappingsImpl.builder()
                 .add(MailAddressFixture.ANY_AT_JAMES.toString())
                 .build();
-        message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        message = MimeMessageUtil.defaultMimeMessage();
 
         nonDomainWithDefaultLocal = new MailAddress(NONEDOMAIN + "@" + MailAddressFixture.JAMES_LOCAL);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
index b1782f8..4f01b64 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableTest.java
@@ -20,9 +20,6 @@ package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import java.util.Properties;
-
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.domainlist.api.DomainList;
@@ -31,6 +28,7 @@ import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -54,7 +52,7 @@ public class RecipientRewriteTableTest {
         
         mailet = new RecipientRewriteTable(virtualTableStore, domainList);
 
-        message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        message = MimeMessageUtil.defaultMimeMessage();
 
         mailetContext = FakeMailContext.defaultContext();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
index 468b560..ff72b03 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RedirectTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -280,10 +278,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).isEmpty();
     }
@@ -297,10 +294,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(new MailAddress("reverse@james.org"));
     }
@@ -314,10 +310,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(postmaster);
     }
@@ -332,10 +327,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(postmaster);
     }
@@ -349,10 +343,9 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("subject");
-        message.setText("This is a fake mail");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("subject")
+            .setText("This is a fake mail"));
 
         assertThat(redirect.getReversePath(mail)).contains(new MailAddress("sender@james.org"));
     }
@@ -367,13 +360,12 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         redirect.service(mail);
@@ -391,13 +383,13 @@ public class RedirectTest {
                 .build();
         redirect.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
+
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         redirect.service(mail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
index 26653f4..7c64751 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/ResendTest.java
@@ -24,13 +24,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.net.UnknownHostException;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -51,15 +49,13 @@ public class ResendTest {
 
     private Resend resend;
     private FakeMailContext fakeMailContext;
-    private MailAddress postmaster;
 
     @Before
     public void setUp() throws Exception {
         DNSService dnsService = mock(DNSService.class);
         resend = new Resend(dnsService);
-        postmaster = new MailAddress("postmaster@james.org");
         fakeMailContext = FakeMailContext.builder()
-                .postmaster(postmaster)
+                .postmaster(new MailAddress("postmaster@james.org"))
                 .build();
 
         when(dnsService.getLocalHost()).thenThrow(new UnknownHostException());
@@ -120,13 +116,12 @@ public class ResendTest {
                 .build();
         resend.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         resend.service(mail);
@@ -146,13 +141,13 @@ public class ResendTest {
                 .build();
         resend.init(mailetConfig);
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setSubject("My subject");
-        mimeMessage.setText("content");
+
         FakeMail mail = FakeMail.builder()
                 .name(MAILET_NAME)
                 .sender(MailAddressFixture.ANY_AT_JAMES)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .setSubject("My subject")
+                    .setText("content"))
                 .build();
 
         resend.service(mail);


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


[3/5] james-project git commit: JAMES-2305 Limit uses of MimeMessage constructor throughout the code base

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java
index a2fcb53..439c3d3 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/redirect/NotifyMailetsMessageTest.java
@@ -23,27 +23,22 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.io.ByteArrayInputStream;
 import java.util.Optional;
-import java.util.Properties;
 import java.util.TimeZone;
 
-import javax.mail.Message.RecipientType;
 import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.joda.time.DateTime;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.collect.ImmutableList;
-
 public class NotifyMailetsMessageTest {
 
     private TimeZone timeZone;
@@ -61,42 +56,35 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldReturnTheMessageWhenSimpleMimeMessage() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
         FakeMail mail = FakeMail.builder()
-                .mimeMessage(message)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .sender(new MailAddress("user", "james.org"))
                 .build();
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
-        assertThat(generateMessage).isEqualTo("my message\n" +
-                "\n" +
-                "Message details:\n" +
-                "  MAIL FROM: user@james.org\n");
+        assertThat(generateMessage).contains("my message\n")
+            .contains("Message details:")
+            .contains("  MAIL FROM: user@james.org\n");
     }
 
     @Test
     public void generateMessageShouldAddErrorMessageWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        FakeMail mail = FakeMail.from(message);
-        mail.setErrorMessage("error message");
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder());
+        String myErrorMessage = "my error message";
+        mail.setErrorMessage(myErrorMessage);
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
-        assertThat(generateMessage).isEqualTo("my message\n" +
-                "\n" +
+        assertThat(generateMessage).contains(
                 "Error message below:\n" +
-                "error message\n" +
-                "\n" +
-                "Message details:\n" +
-                "  MAIL FROM: null\n");
+                "my error message\n");
     }
 
     @Test
     public void generateMessageShouldAddSubjectWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setSubject("my subject");
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .setSubject("my subject"));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -105,7 +93,7 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddSentDateWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         message.setSentDate(DateTime.parse("2016-09-08T14:25:52.000Z").toDate());
         FakeMail mail = FakeMail.from(message);
 
@@ -116,9 +104,10 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddRecipientsWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        FakeMail mail = FakeMail.from(message);
-        mail.setRecipients(ImmutableList.of(new MailAddress("user", "james.org"), new MailAddress("user2", "james.org")));
+        FakeMail mail = FakeMail.builder()
+            .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
+            .recipients("user@james.org", "user2@james.org")
+            .build();
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -128,9 +117,8 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddFromWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setFrom(new InternetAddress("user@james.org"));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addFrom("user@james.org"));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -140,9 +128,8 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddToWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setRecipients(RecipientType.TO, new InternetAddress[] { new InternetAddress("user@james.org"), new InternetAddress("user2@james.org") });
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addToRecipient("user@james.org", "user2@james.org"));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -153,9 +140,8 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddCCWhenMimeMessageAsSome() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.setRecipients(RecipientType.CC, new InternetAddress[] { new InternetAddress("user@james.org"), new InternetAddress("user2@james.org") });
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addCcRecipient("user@james.org", "user2@james.org"));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -166,12 +152,7 @@ public class NotifyMailetsMessageTest {
 
     @Test
     public void generateMessageShouldAddSizeWhenPossible() throws Exception {
-        String content = "MIME-Version: 1.0\r\n" +
-                "Content-Type: text/plain; charset=utf-8\r\n" +
-                "\r\n" +
-                "test\r\n";
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder());
         mail.setMessageSize(6);
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
@@ -186,8 +167,8 @@ public class NotifyMailetsMessageTest {
             "\r\n" +
             "test\r\n";
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+
+        FakeMail mail = FakeMail.from(MimeMessageUtil.mimeMessageFromString(content));
         mail.setMessageSize((long)(5.9 * 1024));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
@@ -241,8 +222,7 @@ public class NotifyMailetsMessageTest {
             "\r\n" +
             "test\r\n";
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageUtil.mimeMessageFromString(content));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -257,8 +237,7 @@ public class NotifyMailetsMessageTest {
             "\r\n" +
             "test\r\n";
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageUtil.mimeMessageFromString(content));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -274,8 +253,7 @@ public class NotifyMailetsMessageTest {
             "\r\n" +
             "test\r\n";
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageUtil.mimeMessageFromString(content));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 
@@ -291,8 +269,7 @@ public class NotifyMailetsMessageTest {
             "\r\n" +
             "test\r\n";
 
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()), new ByteArrayInputStream(content.getBytes()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageUtil.mimeMessageFromString(content));
 
         String generateMessage = new NotifyMailetsMessage().generateMessage("my message", mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
index a993fa9..04224d1 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/RecipientsUtilsTest.java
@@ -23,13 +23,9 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.List;
-import java.util.Properties;
-
-import javax.mail.Session;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMessage.RecipientType;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.transport.mailets.redirect.RedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.test.FakeMail;
@@ -103,15 +99,16 @@ public class RecipientsUtilsTest {
         when(mailet.getRecipients())
             .thenReturn(ImmutableList.of(SpecialAddress.FROM, SpecialAddress.TO));
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setRecipients(RecipientType.TO, "to@james.org, to2@james.org");
         MailAddress from = new MailAddress("from", "james.org");
         MailAddress to = new MailAddress("to", "james.org");
         MailAddress to2 = new MailAddress("to2", "james.org");
         FakeMail fakeMail = FakeMail.builder()
                 .sender(from)
                 .recipients(to, to2)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addToRecipient(to.asString(), to2.asString())
+                    .addFrom(from.asString())
+                    .build())
                 .build();
 
         List<MailAddress> recipients = testee.getRecipients(fakeMail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
index b7d50c8..636d729 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/SpecialAddressesUtilsTest.java
@@ -25,19 +25,18 @@ import static org.mockito.Mockito.when;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.transport.mailets.redirect.RedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.base.MailAddressFixture;
-import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -126,8 +125,7 @@ public class SpecialAddressesUtilsTest {
 
     @Test
     public void replaceMailAddressesShouldReturnEmptyWhenAddressesMatchReplyToAndReplyToIsNull() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder());
 
         Collection<MailAddress> addresses = testee.replaceSpecialAddresses(mail, ImmutableList.of(SpecialAddress.REPLY_TO));
 
@@ -136,7 +134,7 @@ public class SpecialAddressesUtilsTest {
 
     @Test
     public void replaceMailAddressesShouldReturnReplyToWhenAddressesMatchReplyTo() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         message.setReplyTo(InternetAddress.parse(MailAddressFixture.ANY_AT_JAMES.toString() + ", " + MailAddressFixture.OTHER_AT_JAMES.toString()));
         FakeMail mail = FakeMail.from(message);
 
@@ -153,7 +151,7 @@ public class SpecialAddressesUtilsTest {
         MailAddress sender = MailAddressFixture.ANY_AT_JAMES;
         FakeMail mail = FakeMail.builder()
                 .sender(sender)
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         Collection<MailAddress> addresses = testee.replaceSpecialAddresses(mail, ImmutableList.of(SpecialAddress.REPLY_TO));
@@ -292,9 +290,8 @@ public class SpecialAddressesUtilsTest {
     public void replaceInternetAddressesShouldReturnFromWhenAddressesMatchFrom() throws Exception {
         MailAddress from = MailAddressFixture.ANY_AT_JAMES;
         MailAddress from2 = MailAddressFixture.OTHER_AT_JAMES;
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.addFrom(new InternetAddress[] { from.toInternetAddress(), from2.toInternetAddress() });
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addFrom(from.toInternetAddress(), from2.toInternetAddress()));
 
         List<MailAddress> addresses = testee.replaceInternetAddresses(mail, ImmutableList.of(SpecialAddress.FROM.toInternetAddress()));
 
@@ -305,7 +302,7 @@ public class SpecialAddressesUtilsTest {
     public void replaceInternetAddressesShouldReturnSenderWhenAddressesMatchFromAndNoFrom() throws Exception {
         MailAddress sender = MailAddressFixture.ANY_AT_JAMES;
         FakeMail mail = FakeMail.builder()
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .sender(sender)
                 .build();
 
@@ -326,8 +323,7 @@ public class SpecialAddressesUtilsTest {
 
     @Test
     public void replaceInternetAddressesShouldReturnEmptyWhenAddressesMatchReplyToAndReplyToIsNull() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder());
 
         List<MailAddress> addresses = testee.replaceInternetAddresses(mail, ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress()));
 
@@ -336,7 +332,7 @@ public class SpecialAddressesUtilsTest {
 
     @Test
     public void replaceInternetAddressesShouldReturnReplyToWhenAddressesMatchReplyTo() throws Exception {
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        MimeMessage message = MimeMessageUtil.defaultMimeMessage();
         message.setReplyTo(InternetAddress.parse(MailAddressFixture.ANY_AT_JAMES.toString() + ", " + MailAddressFixture.OTHER_AT_JAMES.toString()));
         FakeMail mail = FakeMail.from(message);
 
@@ -353,7 +349,7 @@ public class SpecialAddressesUtilsTest {
         MailAddress sender = MailAddressFixture.ANY_AT_JAMES;
         FakeMail mail = FakeMail.builder()
                 .sender(sender)
-                .mimeMessage(new MimeMessage(Session.getDefaultInstance(new Properties())))
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder())
                 .build();
 
         List<MailAddress> addresses = testee.replaceInternetAddresses(mail, ImmutableList.of(SpecialAddress.REPLY_TO.toInternetAddress()));
@@ -387,9 +383,8 @@ public class SpecialAddressesUtilsTest {
     public void replaceInternetAddressesShouldReturnToWhenAddressesMatchRecipients() throws Exception {
         MailAddress to = MailAddressFixture.ANY_AT_JAMES;
         MailAddress to2 = MailAddressFixture.OTHER_AT_JAMES;
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.addHeader(RFC2822Headers.TO, MailAddressFixture.ANY_AT_JAMES.toString() + ", " + MailAddressFixture.OTHER_AT_JAMES.toString());
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addToRecipient(to.asString(), to2.asString()));
 
         List<MailAddress> addresses = testee.replaceInternetAddresses(mail, ImmutableList.of(SpecialAddress.RECIPIENTS.toInternetAddress()));
 
@@ -400,9 +395,8 @@ public class SpecialAddressesUtilsTest {
     public void replaceInternetAddressesShouldReturnToWhenAddressesMatchTo() throws Exception {
         MailAddress to = MailAddressFixture.ANY_AT_JAMES;
         MailAddress to2 = MailAddressFixture.OTHER_AT_JAMES;
-        MimeMessage message = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        message.addHeader(RFC2822Headers.TO, MailAddressFixture.ANY_AT_JAMES.toString() + ", " + MailAddressFixture.OTHER_AT_JAMES);
-        FakeMail mail = FakeMail.from(message);
+        FakeMail mail = FakeMail.from(MimeMessageBuilder.mimeMessageBuilder()
+            .addToRecipient(to.asString(), to2.asString()));
 
         List<MailAddress> addresses = testee.replaceInternetAddresses(mail, ImmutableList.of(SpecialAddress.TO.toInternetAddress()));
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
index ff229ef..f7b276a 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/TosUtilsTest.java
@@ -23,14 +23,11 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.List;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMessage.RecipientType;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.transport.mailets.redirect.RedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.mailet.base.test.FakeMail;
@@ -106,15 +103,14 @@ public class TosUtilsTest {
         when(mailet.getTo())
             .thenReturn(ImmutableList.of(SpecialAddress.FROM.toInternetAddress(), SpecialAddress.TO.toInternetAddress()));
 
-        MimeMessage mimeMessage = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        mimeMessage.setRecipients(RecipientType.TO, "to@james.org, to2@james.org");
         MailAddress from = new MailAddress("from", "james.org");
         MailAddress toMailAddress = new MailAddress("to", "james.org");
         MailAddress toMailAddress2 = new MailAddress("to2", "james.org");
         FakeMail fakeMail = FakeMail.builder()
                 .sender(from)
                 .recipients(toMailAddress, toMailAddress2)
-                .mimeMessage(mimeMessage)
+                .mimeMessage(MimeMessageBuilder.mimeMessageBuilder()
+                    .addToRecipient("to@james.org", "to2@james.org"))
                 .build();
 
         List<MailAddress> to = testee.getTo(fakeMail);

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java
index 1ebd61c..1dc3357 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachmentTest.java
@@ -24,9 +24,6 @@ import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.StandardCharsets;
-
 import javax.mail.BodyPart;
 import javax.mail.MessagingException;
 import javax.mail.Multipart;
@@ -91,7 +88,7 @@ public class TextCalendarBodyToAttachmentTest {
             "Content-transfer-encoding: 8BIT\n" +
             "\n" +
             "BEGIN:VCALENDAR";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromStream(new ByteArrayInputStream(messageContent.getBytes(StandardCharsets.US_ASCII)));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageContent);
 
         Mail mail = FakeMail.builder()
             .mimeMessage(message)
@@ -109,7 +106,7 @@ public class TextCalendarBodyToAttachmentTest {
             "Content-transfer-encoding: 8BIT\n" +
             "\n" +
             "BEGIN:VCALENDAR";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromStream(new ByteArrayInputStream(messageContent.getBytes(StandardCharsets.US_ASCII)));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageContent);
 
         Mail mail = FakeMail.builder()
             .mimeMessage(message)
@@ -128,7 +125,7 @@ public class TextCalendarBodyToAttachmentTest {
             "BEGIN:VCALENDAR\n" +
             "END:VEVENT\n" +
             "END:VCALENDAR";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromStream(new ByteArrayInputStream(messageContent.getBytes(StandardCharsets.US_ASCII)));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageContent);
 
         Mail mail = FakeMail.builder()
             .mimeMessage(message)
@@ -207,7 +204,7 @@ public class TextCalendarBodyToAttachmentTest {
             "BEGIN:VCALENDAR\n" +
             "END:VEVENT\n" +
             "END:VCALENDAR";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromStream(new ByteArrayInputStream(messageContent.getBytes(StandardCharsets.US_ASCII)));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageContent);
 
         Mail mail = FakeMail.builder()
             .mimeMessage(message)
@@ -226,7 +223,7 @@ public class TextCalendarBodyToAttachmentTest {
             "BEGIN:VCALENDAR\n" +
             "END:VEVENT\n" +
             "END:VCALENDAR";
-        MimeMessage message = MimeMessageUtil.mimeMessageFromStream(new ByteArrayInputStream(messageContent.getBytes(StandardCharsets.US_ASCII)));
+        MimeMessage message = MimeMessageUtil.mimeMessageFromString(messageContent);
 
         Mail mail = FakeMail.builder()
             .mimeMessage(message)

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/VacationReplyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/VacationReplyTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/VacationReplyTest.java
index 7dff577..6147814 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/VacationReplyTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/VacationReplyTest.java
@@ -27,16 +27,15 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.util.Optional;
-import java.util.Properties;
 
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
 import org.apache.james.jmap.api.vacation.Vacation;
 import org.apache.james.jmap.utils.MimeMessageBodyGenerator;
 import org.apache.mailet.base.test.FakeMail;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.hamcrest.BaseMatcher;
 import org.hamcrest.Description;
 import org.junit.Before;
@@ -62,12 +61,13 @@ public class VacationReplyTest {
         originalRecipient = new MailAddress("benwa@apache.org");
 
         mail = FakeMail.builder()
-                .mimeMessage(new MimeMessage(Session.getInstance(new Properties()), ClassLoader.getSystemResourceAsStream("spamMail.eml")))
+                .mimeMessage(
+                    MimeMessageUtil.mimeMessageFromStream(ClassLoader.getSystemResourceAsStream("spamMail.eml")))
                 .sender(originalSender)
                 .build();
 
         mimeMessageBodyGenerator = mock(MimeMessageBodyGenerator.class);
-        generatedBody = new MimeMessage(Session.getInstance(new Properties()));
+        generatedBody = MimeMessageUtil.defaultMimeMessage();
         when(mimeMessageBodyGenerator.from(any(MimeMessage.class), any(), any())).thenReturn(generatedBody);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/7244396c/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MimeMessageBodyGeneratorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MimeMessageBodyGeneratorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MimeMessageBodyGeneratorTest.java
index 4b283ab..f5586f1 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MimeMessageBodyGeneratorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MimeMessageBodyGeneratorTest.java
@@ -27,12 +27,11 @@ import static org.mockito.Mockito.when;
 
 import java.nio.charset.StandardCharsets;
 import java.util.Optional;
-import java.util.Properties;
 
-import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -44,7 +43,7 @@ public class MimeMessageBodyGeneratorTest {
 
     @Before
     public void setUp() {
-        original = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        original = MimeMessageUtil.defaultMimeMessage();
         htmlTextExtractor = mock(HtmlTextExtractor.class);
         mimeMessageBodyGenerator = new MimeMessageBodyGenerator(htmlTextExtractor);
     }


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


[2/5] james-project git commit: JAMES-2305 Update to javax.mail 1.6.0

Posted by bt...@apache.org.
JAMES-2305 Update to javax.mail 1.6.0


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

Branch: refs/heads/master
Commit: f9b08643ba301517c21f420d8acc1f28c86d5fc0
Parents: c3a109a
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 15 15:52:38 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:47:52 2018 +0700

----------------------------------------------------------------------
 .../ai/classic/BayesianAnalysisFeeder.java      |   5 +-
 .../james/transport/mailets/AbstractSign.java   |   6 +-
 .../james/transport/mailets/LogMessage.java     |   3 +-
 .../mailets/utils/MimeMessageUtils.java         |   7 +-
 .../james/transport/matchers/RelayLimit.java    |   2 +-
 .../james/transport/mailets/AddFooterTest.java  |  96 +--
 .../mailets/utils/MimeMessageUtilsTest.java     |   4 +-
 pom.xml                                         |   2 +-
 .../core/MimeMessageCopyOnWriteProxy.java       |  13 +-
 .../james/server/core/MimeMessageUtil.java      |   5 +-
 .../james/server/core/MimeMessageWrapper.java   |  14 +-
 .../james/server/core/MimeMessageTest.java      |  12 +-
 .../server/core/MimeMessageWrapperTest.java     |   6 +-
 .../mailets/BayesianAnalysisFeeder.java         |   1 -
 .../mailets/jsieve/SieveMailAdapter.java        |   4 +-
 .../mailets/jsieve/VacationAction.java          |   4 +-
 .../redirect/MailMessageAlteringUtils.java      |   1 -
 .../samples/mailets/InstrumentationMailet.java  |   2 -
 .../james/fetchmail/MessageProcessor.java       |   3 -
 .../mailet/TextCalendarBodyToAttachment.java    |   4 +-
 .../smtpserver/SpamAssassinHandlerTest.java     |  10 +-
 .../james/smtpserver/URIRBLHandlerTest.java     |  33 +-
 .../java/org/apache/james/smtpserver/Util.java  |  42 +-
 .../james/smtpserver/mock/MockMimeMessage.java  | 591 -------------------
 24 files changed, 83 insertions(+), 787 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
index 44f413e..6cb386b 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
@@ -325,11 +325,10 @@ public class BayesianAnalysisFeeder extends GenericMailet {
     }
 
     private void clearAllHeaders(MimeMessage message) throws javax.mail.MessagingException {
-        @SuppressWarnings("rawtypes")
-        Enumeration headers = message.getAllHeaders();
+        Enumeration<Header> headers = message.getAllHeaders();
 
         while (headers.hasMoreElements()) {
-            Header header = (Header) headers.nextElement();
+            Header header = headers.nextElement();
             try {
                 message.removeHeader(header.getName());
             } catch (javax.mail.MessagingException me) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index 4676ff5..ab83934 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -488,10 +488,9 @@ public abstract class AbstractSign extends GenericMailet {
             
             MimeMessage newMessage = new MimeMessage(Session.getDefaultInstance(System.getProperties(),
             null));
-            @SuppressWarnings("unchecked")
             Enumeration<String> headerEnum = originalMessage.getAllHeaderLines();
             while (headerEnum.hasMoreElements()) {
-                newMessage.addHeaderLine((String) headerEnum.nextElement());
+                newMessage.addHeaderLine(headerEnum.nextElement());
             }
             
             newMessage.setSender(new InternetAddress(getKeyHolder().getSignerAddress(), getSignerName()));
@@ -669,11 +668,10 @@ public abstract class AbstractSign extends GenericMailet {
      * @return The string containing the headers.
      */
     protected final String getMessageHeaders(MimeMessage message) throws MessagingException {
-        @SuppressWarnings("unchecked")
         Enumeration<String> heads = message.getAllHeaderLines();
         StringBuilder headBuffer = new StringBuilder(1024);
         while (heads.hasMoreElements()) {
-            headBuffer.append(heads.nextElement().toString()).append("\r\n");
+            headBuffer.append(heads.nextElement()).append("\r\n");
         }
         return headBuffer.toString();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index 8f2e209..c24e6ac 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -25,7 +25,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.Collections;
-import java.util.Enumeration;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
@@ -111,7 +110,7 @@ public class LogMessage extends GenericMailet {
     private void logHeaders(MimeMessage message) throws MessagingException {
         if (headers && logger.isInfoEnabled()) {
             logger.info("\n");
-            for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
+            for (String header : Collections.list(message.getAllHeaderLines())) {
                 logger.info(header + "\n");
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
index bdd5518..288e20e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
@@ -21,6 +21,7 @@ package org.apache.james.transport.mailets.utils;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Optional;
+
 import javax.mail.Header;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
@@ -77,7 +78,6 @@ public class MimeMessageUtils {
      * headers
      */
     public String getMessageHeaders() throws MessagingException {
-        @SuppressWarnings("unchecked")
         Enumeration<String> heads = message.getAllHeaderLines();
         StringBuilder headBuffer = new StringBuilder(1024);
         while (heads.hasMoreElements()) {
@@ -88,10 +88,9 @@ public class MimeMessageUtils {
 
     public List<Header> toHeaderList() throws MessagingException {
         ImmutableList.Builder<Header> headers = ImmutableList.builder();
-        @SuppressWarnings("unchecked")
         Enumeration<Header> allHeaders = message.getAllHeaders();
-        for (Enumeration<Header> e = allHeaders; e.hasMoreElements();) {
-            headers.add(e.nextElement());
+        while (allHeaders.hasMoreElements()) {
+            headers.add(allHeaders.nextElement());
         }
         return headers.build();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
index 1ee931d..9bbade4 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
@@ -49,7 +49,7 @@ public class RelayLimit extends GenericMatcher {
     public Collection<MailAddress> match(Mail mail) throws javax.mail.MessagingException {
         MimeMessage mm = mail.getMessage();
         int count = 0;
-        for (@SuppressWarnings("unchecked") Enumeration<Header> e = mm.getAllHeaders(); e.hasMoreElements();) {
+        for (Enumeration<Header> e = mm.getAllHeaders(); e.hasMoreElements();) {
             Header hdr = e.nextElement();
             if (hdr.getName().equals(RFC2822Headers.RECEIVED)) {
                 count++;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
index 14588f7..9949b48 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
@@ -51,6 +51,7 @@ import com.google.common.collect.Sets;
 @RunWith(Parameterized.class)
 public class AddFooterTest {
 
+    private static final String MY_FOOTER = "my footer";
     @Rule public ExpectedException exception = ExpectedException.none();
     
     private final String javaCharset;
@@ -94,7 +95,7 @@ public class AddFooterTest {
     public void shouldAddFooterWhenQuotedPrintableTextPlainMessage() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -107,20 +108,19 @@ public class AddFooterTest {
                 "Test=E0 and one =A4",
                 "");
 
-        String expectedFooter = "------ my footer =E0/=A4 ------";
+        String expectedFooter = "------ " + MY_FOOTER + " =E0/=A4 ------";
 
         Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(quotedPrintableTextPlainMessage + expectedFooter);
-
+        assertThat(MailUtil.toString(mail, javaCharset)).endsWith(expectedFooter);
     }
 
     @Test
     public void shouldEnsureCarriageReturnWhenAddFooterWithTextPlainMessage() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -132,28 +132,20 @@ public class AddFooterTest {
                 "",
                 "Test=E0 and one =A4");
 
-        String expected = Joiner.on("\r\n").join(
-                "Subject: test",
-                "Content-Type: text/plain; charset=ISO-8859-15",
-                "MIME-Version: 1.0",
-                "Content-Transfer-Encoding: quoted-printable",
-                "",
-                "Test=E0 and one =A4",
-                "------ my footer =E0/=A4 ------");
+        String expectedFooter = "------ " + MY_FOOTER + " =E0/=A4 ------";
         
 
         Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
-
+        assertThat(MailUtil.toString(mail, javaCharset)).endsWith("\r\n" + expectedFooter);
     }
     
     @Test
     public void shouldNotAddFooterWhenUnsupportedEncoding() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -169,14 +161,14 @@ public class AddFooterTest {
         Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(quotedPrintableTextPlainMessage);
+        assertThat(MailUtil.toString(mail, javaCharset)).doesNotContain(MY_FOOTER);
     }
 
     @Test
     public void shouldNotAddFooterWhenUnsupportedTextContentType() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -203,7 +195,7 @@ public class AddFooterTest {
     public void shouldNotAddFooterWhenNestedUnsupportedMultipart() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -239,7 +231,7 @@ public class AddFooterTest {
     public void shouldAddFooterWhenMultipartRelatedHtmlMessage() throws MessagingException, IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -279,12 +271,12 @@ public class AddFooterTest {
                 "--------------050206010102010306090507--",
                 "");
 
-        String expectedFooter = "<br />------ my footer =E0/=A4 ------";
+        String expectedFooter = "<br />------ " + MY_FOOTER + " =E0/=A4 ------";
 
         Mail mail = FakeMail.fromMime(htmlMultipartRelatedMessagePart1 + htmlMultipartRelatedMessagePart2, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(htmlMultipartRelatedMessagePart1 + expectedFooter + htmlMultipartRelatedMessagePart2);
+        assertThat(MailUtil.toString(mail, javaCharset)).contains(expectedFooter);
     }
     
     @Test
@@ -292,7 +284,7 @@ public class AddFooterTest {
             IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -320,31 +312,8 @@ public class AddFooterTest {
         
         Mail mail = FakeMail.fromMime(multipartAlternativeMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
-
-        String expected = Joiner.on("\r\n").join(
-                "Subject: test",
-                "Content-Type: multipart/alternative;",
-                "    boundary=\"--==--\"",
-                "MIME-Version: 1.0",
-                "",
-                "----==--",
-                "Content-Type: text/plain;",
-                "    charset=\"ISO-8859-15\"",
-                "Content-Transfer-Encoding: quoted-printable",
-                "",
-                "Test=E0 and @=80",
-                "------ my footer =E0/=A4 ------",
-                "----==--",
-                "Content-Type: text/html;",
-                "    charset=\"CP1252\"",
-                "Content-Transfer-Encoding: quoted-printable",
-                "",
-                "<html><body>test =80 ss<br />------ my footer =E0/=80 ------</body></html>",
-                "----==----",
-                ""
-                );
         
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+        assertThat(MailUtil.toString(mail, javaCharset)).matches("(.|\n|\r)*" + MY_FOOTER + "(.|\n|\r)*" + MY_FOOTER + "(.|\n|\r)*");
     }
 
     @Test
@@ -352,7 +321,7 @@ public class AddFooterTest {
             IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -370,18 +339,8 @@ public class AddFooterTest {
         Mail mail = FakeMail.fromMime(htmlMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        String expected = Joiner.on("\r\n").join(
-                "Subject: test",
-                "MIME-Version: 1.0",
-                "Content-Type: text/html;",
-                "    charset=\"CP1252\"",
-                "Content-Transfer-Encoding: quoted-printable",
-                "",
-                "<html><body>test =80 ss<br />------ my footer =E0/=80 ------</bOdY></html>",
-                ""
-                );
-        
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+        String htmlContent = "<html><body>test =80 ss<br />------ " + MY_FOOTER + " =E0/=80 ------</bOdY></html>";
+        assertThat(MailUtil.toString(mail, javaCharset)).contains(htmlContent);
     }
 
     @Test
@@ -389,7 +348,7 @@ public class AddFooterTest {
             IOException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         
@@ -407,18 +366,9 @@ public class AddFooterTest {
         Mail mail = FakeMail.fromMime(htmlMessage, javaCharset, javaMailCharset);
         mailet.service(mail);
 
-        String expected = Joiner.on("\r\n").join(
-                "Subject: test",
-                "MIME-Version: 1.0",
-                "Content-Type: text/html;",
-                "    charset=\"CP1252\"",
-                "Content-Transfer-Encoding: quoted-printable",
-                "",
-                "<html><body>test =80 ss",
-                "<br />------ my footer =E0/=80 ------"
-                );
+        String expectedFooter = "<br />------ " + MY_FOOTER + " =E0/=80 ------";
         
-        assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+        assertThat(MailUtil.toString(mail, javaCharset)).endsWith(expectedFooter);
     }
     
     @SuppressWarnings("unchecked")
@@ -426,7 +376,7 @@ public class AddFooterTest {
     public void shouldThrowMessagingExceptionWhenIOExceptionReadingMessage() throws MessagingException {
         FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
                 .mailetName("Test")
-                .setProperty("text", "------ my footer à/€ ------")
+                .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
                 .build();
         mailet.init(mailetConfig);
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
index 8130c3b..de3f003 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
@@ -159,7 +159,7 @@ public class MimeMessageUtilsTest {
                 .build())
                 .toHeaderList())
             .extracting("name")
-            .containsOnly("Message-Id", "MIME-Version");
+            .contains("Message-Id", "MIME-Version");
     }
 
     @Test
@@ -171,6 +171,6 @@ public class MimeMessageUtilsTest {
                 .build())
                 .toHeaderList())
             .extracting("name")
-            .containsOnly("Message-Id", "MIME-Version", headerName);
+            .containsOnly("Message-Id", "MIME-Version", headerName, "Date");
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ebe228a..d91877c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1552,7 +1552,7 @@
             <dependency>
                 <groupId>com.sun.mail</groupId>
                 <artifactId>javax.mail</artifactId>
-                <version>1.5.4</version>
+                <version>1.6.0</version>
                 <exclusions>
                     <exclusion>
                         <groupId>javax.activation</groupId>

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
index 9832659..3a8ede4 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
@@ -30,6 +30,7 @@ import javax.mail.Address;
 import javax.mail.Flags;
 import javax.mail.Flags.Flag;
 import javax.mail.Folder;
+import javax.mail.Header;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Multipart;
@@ -284,37 +285,31 @@ public class MimeMessageCopyOnWriteProxy extends MimeMessage implements Disposab
         return getWrappedMessage().getHeader(name, delimiter);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getAllHeaders() throws MessagingException {
+    public Enumeration<Header> getAllHeaders() throws MessagingException {
         return getWrappedMessage().getAllHeaders();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
+    public Enumeration<Header> getMatchingHeaders(String[] names) throws MessagingException {
         return getWrappedMessage().getMatchingHeaders(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
+    public Enumeration<Header> getNonMatchingHeaders(String[] names) throws MessagingException {
         return getWrappedMessage().getNonMatchingHeaders(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getAllHeaderLines() throws MessagingException {
         return getWrappedMessage().getAllHeaderLines();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
         return getWrappedMessage().getMatchingHeaderLines(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
         return getWrappedMessage().getNonMatchingHeaderLines(names);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
index 698ad5d..26be958 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
@@ -181,7 +181,6 @@ public class MimeMessageUtil {
      */
     private static void writeHeadersTo(MimeMessage message, OutputStream headerOs, String[] ignoreList) throws MessagingException {
         // Write the headers (minus ignored ones)
-        @SuppressWarnings("unchecked")
         Enumeration<String> headers = message.getNonMatchingHeaderLines(ignoreList);
         writeHeadersTo(headers, headerOs);
     }
@@ -284,13 +283,13 @@ public class MimeMessageUtil {
         // messages each time).
         size = message.getSize();
         if (size != -1) {
-            Enumeration<?> e = message.getAllHeaderLines();
+            Enumeration<String> e = message.getAllHeaderLines();
             if (e.hasMoreElements()) {
                 size += 2;
             }
             while (e.hasMoreElements()) {
                 // add 2 bytes for the CRLF
-                size += ((String) e.nextElement()).length() + 2;
+                size += e.nextElement().length() + 2;
             }
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
index d61b98e..ba59a60 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
@@ -31,6 +31,7 @@ import java.util.Enumeration;
 import java.util.UUID;
 
 import javax.activation.DataHandler;
+import javax.mail.Header;
 import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.internet.InternetHeaders;
@@ -316,7 +317,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
                     }
                     myHeaders = headers;
                 }
-                @SuppressWarnings("unchecked")
                 Enumeration<String> filteredHeaders = myHeaders.getNonMatchingHeaderLines(ignoreList);
                 IOUtils.copy(new InternetHeadersInputStream(filteredHeaders), headerOs);
                 IOUtils.copy(in, bodyOs);
@@ -453,34 +453,30 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
         return headers.getHeader(name, delimiter);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getAllHeaders() throws MessagingException {
+    public Enumeration<Header> getAllHeaders() throws MessagingException {
         if (headers == null) {
             loadHeaders();
         }
         return headers.getAllHeaders();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
+    public Enumeration<Header> getMatchingHeaders(String[] names) throws MessagingException {
         if (headers == null) {
             loadHeaders();
         }
         return headers.getMatchingHeaders(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
-    public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
+    public Enumeration<Header> getNonMatchingHeaders(String[] names) throws MessagingException {
         if (headers == null) {
             loadHeaders();
         }
         return headers.getNonMatchingHeaders(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getAllHeaderLines() throws MessagingException {
         if (headers == null) {
@@ -489,7 +485,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
         return headers.getAllHeaderLines();
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
         if (headers == null) {
@@ -498,7 +493,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
         return headers.getMatchingHeaderLines(names);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
         if (headers == null) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
index a7a7cb1..2c73e85 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
@@ -47,6 +47,7 @@ public class MimeMessageTest {
 
     protected MimeMessage getSimpleMessage() throws Exception {
         MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
         mmCreated.setSubject("test");
         mmCreated.setText("test body");
         mmCreated.saveChanges();
@@ -56,6 +57,7 @@ public class MimeMessageTest {
     protected String getSimpleMessageCleanedSource() {
         return "Subject: test\r\n"
                 + "MIME-Version: 1.0\r\n"
+                + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
                 + "Content-Type: text/plain; charset=us-ascii\r\n"
                 + "Content-Transfer-Encoding: 7bit\r\n"
                 + "\r\n"
@@ -64,6 +66,7 @@ public class MimeMessageTest {
 
     protected MimeMessage getMessageWithBadReturnPath() throws Exception {
         MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
         mmCreated.setSubject("test");
         mmCreated.setHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>");
         mmCreated.setText("test body");
@@ -75,6 +78,7 @@ public class MimeMessageTest {
         return "Subject: test\r\n"
                 + "Return-Path: <my...@example.com>\r\n"
                 + "MIME-Version: 1.0\r\n"
+                + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
                 + "Content-Type: text/plain; charset=us-ascii\r\n"
                 + "Content-Transfer-Encoding: 7bit\r\n"
                 + "\r\n"
@@ -98,6 +102,7 @@ public class MimeMessageTest {
     protected MimeMessage getMultipartMessage() throws Exception {
         MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
         mmCreated.setSubject("test");
+        mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
         MimeMultipart mm = new MimeMultipart("alternative");
         mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new ByteArrayInputStream("X-header: test1\r\nContent-Type: text/plain; charset=Cp1252\r\n"
                 .getBytes())), "first part òàù".getBytes()));
@@ -109,7 +114,8 @@ public class MimeMessageTest {
     }
 
     protected String getMultipartMessageSource() {
-        return "Subject: test\r\n"
+        return "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+                + "Subject: test\r\n"
                 + "MIME-Version: 1.0\r\n"
                 + "Content-Type: multipart/alternative; \r\n"
                 + "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
@@ -132,6 +138,7 @@ public class MimeMessageTest {
     protected String getMultipartMessageExpected1() {
         return "Subject: test\r\n"
                 + "MIME-Version: 1.0\r\n"
+                + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
                 + "Content-Type: multipart/alternative; \r\n"
                 + "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
                 + "\r\n"
@@ -153,6 +160,7 @@ public class MimeMessageTest {
     protected String getMultipartMessageExpected2() {
         return "Subject: test\r\n"
                 + "MIME-Version: 1.0\r\n"
+                + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
                 + "Content-Type: multipart/alternative; \r\n"
                 + "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
                 + "\r\n"
@@ -178,6 +186,7 @@ public class MimeMessageTest {
     protected String getMultipartMessageExpected3() {
         return "Subject: test\r\n"
                 + "MIME-Version: 1.0\r\n"
+                + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
                 + "Content-Type: binary/octet-stream\r\n"
                 + "Content-Transfer-Encoding: quoted-printable\r\n"
                 + "\r\n"
@@ -414,7 +423,6 @@ public class MimeMessageTest {
     public void testHeaderOrder() throws Exception {
         MimeMessage message = getSimpleMessage();
         message.setHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
-        @SuppressWarnings("unchecked")
         Enumeration<String> h = message.getAllHeaderLines();
 
         assertEquals(h.nextElement(), "Return-Path: <te...@test.de>");

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
index 3a1ac42..0385a1b 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
@@ -187,14 +187,12 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
     public void testReplaceReturnPathOnBadMessage() throws Exception {
         MimeMessage message = getMessageWithBadReturnPath();
         message.setHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
-        @SuppressWarnings("unchecked")
         Enumeration<String> e = message.getMatchingHeaderLines(new String[]{"Return-Path"});
         assertEquals("Return-Path: <te...@test.de>", e.nextElement());
         assertFalse(e.hasMoreElements());
-        @SuppressWarnings("unchecked")
         Enumeration<String> h = message.getAllHeaderLines();
         assertEquals("Return-Path: <te...@test.de>", h.nextElement());
-        assertFalse(h.nextElement().toString().startsWith("Return-Path:"));
+        assertFalse(h.nextElement().startsWith("Return-Path:"));
         LifecycleUtil.dispose(message);
     }
 
@@ -203,12 +201,10 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
         MimeMessage message = getMessageWithBadReturnPath();
         message.addHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
         // test that we have now 2 return-paths
-        @SuppressWarnings("unchecked")
         Enumeration<String> e = message.getMatchingHeaderLines(new String[]{"Return-Path"});
         assertEquals("Return-Path: <te...@test.de>", e.nextElement());
         assertEquals("Return-Path: <my...@example.com>", e.nextElement());
         // test that return-path is the first line
-        @SuppressWarnings("unchecked")
         Enumeration<String> h = message.getAllHeaderLines();
         assertEquals("Return-Path: <te...@test.de>", h.nextElement());
         LifecycleUtil.dispose(message);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
index 795269d..0447333 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
@@ -329,7 +329,6 @@ public class BayesianAnalysisFeeder extends GenericMailet {
     }
 
     private void clearAllHeaders(MimeMessage message) throws javax.mail.MessagingException {
-        @SuppressWarnings("unchecked")
         Enumeration<Header> headers = message.getAllHeaders();
 
         while (headers.hasMoreElements()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
index 178ad49..0d082a8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
@@ -186,9 +186,9 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC
     public List<String> getHeaderNames() throws SieveMailException {
         Set<String> headerNames = new HashSet<>();
         try {
-            Enumeration<?> allHeaders = getMessage().getAllHeaders();
+            Enumeration<Header> allHeaders = getMessage().getAllHeaders();
             while (allHeaders.hasMoreElements()) {
-                headerNames.add(((Header) allHeaders.nextElement()).getName());
+                headerNames.add(allHeaders.nextElement().getName());
             }
             return new ArrayList<>(headerNames);
         } catch (MessagingException ex) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
index 3f651aa..7fe9f3a 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
@@ -86,9 +86,9 @@ public class VacationAction implements MailAction {
     }
 
     private boolean isMailingList(Mail mail) throws MessagingException {
-        Enumeration<?> enumeration = mail.getMessage().getAllHeaderLines();
+        Enumeration<String> enumeration = mail.getMessage().getAllHeaderLines();
         while (enumeration.hasMoreElements()) {
-            String headerName = (String) enumeration.nextElement();
+            String headerName = enumeration.nextElement();
             if (headerName.startsWith("List-")) {
                 return true;
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
index 23df7b2..c998e2c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
@@ -243,7 +243,6 @@ public class MailMessageAlteringUtils {
     }
 
     private void copyRelevantHeaders(MimeMessage originalMessage, MimeMessage newMessage) throws MessagingException {
-        @SuppressWarnings("unchecked")
         Enumeration<String> headerEnum = originalMessage.getMatchingHeaderLines(
                 new String[] { RFC2822Headers.DATE, RFC2822Headers.FROM, RFC2822Headers.REPLY_TO, RFC2822Headers.TO, 
                         RFC2822Headers.SUBJECT, RFC2822Headers.RETURN_PATH });

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
index c4d890f..2b798ac 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
@@ -100,14 +100,12 @@ public class InstrumentationMailet implements Mailet {
             LOGGER.info("Received: " + message.getReceivedDate());
             LOGGER.info("Sent: " + message.getSentDate());
 
-            @SuppressWarnings("unchecked")
             Enumeration<String> allHeadersLines = message.getAllHeaderLines();
             while (allHeadersLines.hasMoreElements()) {
                 String header = allHeadersLines.nextElement();
                 LOGGER.info("Header Line:= " + header);
             }
 
-            @SuppressWarnings("unchecked")
             Enumeration<Header> allHeadersEnumeration = message.getAllHeaders();
             while (allHeadersEnumeration.hasMoreElements()) {
                 Header header = allHeadersEnumeration.nextElement();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
index b9ad415..1e33fc1 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
@@ -572,7 +572,6 @@ public class MessageProcessor extends ProcessorAbstract {
         MimeMessage messageOut = new MimeMessage(getSession());
 
         // Propogate the headers and subject
-        @SuppressWarnings("unchecked")
         Enumeration<String> headersInEnum = getMessageIn().getAllHeaderLines();
         while (headersInEnum.hasMoreElements()) {
             messageOut.addHeaderLine(headersInEnum.nextElement());
@@ -875,7 +874,6 @@ public class MessageProcessor extends ProcessorAbstract {
      * @return boolean
      */
     protected boolean isBouncing() throws MessagingException {
-        @SuppressWarnings("unchecked")
         Enumeration<String> enumeration = getMessageIn().getMatchingHeaderLines(new String[]{"X-fetched-from"});
         int count = 0;
         while (enumeration.hasMoreElements()) {
@@ -940,7 +938,6 @@ public class MessageProcessor extends ProcessorAbstract {
             }
         } else {
             try {
-                @SuppressWarnings("unchecked")
                 Enumeration<String> enumeration = msg.getMatchingHeaderLines(new String[]{"Received"});
                 while (enumeration.hasMoreElements()) {
                     String received = enumeration.nextElement();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
index d474568..7e9b065 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
@@ -20,7 +20,6 @@
 package org.apache.james.jmap.mailet;
 
 import java.util.Collections;
-import java.util.Enumeration;
 import java.util.List;
 
 import javax.mail.Header;
@@ -83,9 +82,8 @@ public class TextCalendarBodyToAttachment extends GenericMailet {
         mimeMessage.saveChanges();
     }
 
-    @SuppressWarnings("unchecked")
     private List<Header> getContentHeadersFromMimeMessage(MimeMessage mimeMessage) throws MessagingException {
-        return Collections.list((Enumeration<Header>) mimeMessage.getAllHeaders())
+        return Collections.list(mimeMessage.getAllHeaders())
             .stream()
             .filter(header -> header.getName().startsWith(CONTENT_HEADER_PREFIX))
             .collect(Guavate.toImmutableList());

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
index cc26723..6207043 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
@@ -27,12 +27,12 @@ import java.util.HashMap;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
 import org.apache.james.smtpserver.fastfail.SpamAssassinHandler;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
 import org.apache.james.smtpserver.mock.mailet.MockMail;
 import org.apache.james.util.scanner.SpamAssassinInvoker;
 import org.apache.james.utils.MockSpamd;
@@ -103,11 +103,9 @@ public class SpamAssassinHandlerTest {
     }
 
     public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
-        MimeMessage message = new MimeMessage(new MockMimeMessage());
-        message.setText(text);
-        message.saveChanges();
-
-        return message;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .setText(text)
+            .build();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
index 7d138f9..dca95e4 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
@@ -28,13 +28,10 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 
-import javax.mail.BodyPart;
 import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.mock.MockDNSService;
 import org.apache.james.protocols.smtp.SMTPSession;
@@ -42,7 +39,6 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
 import org.apache.james.smtpserver.fastfail.URIRBLHandler;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
 import org.apache.james.smtpserver.mock.mailet.MockMail;
 import org.apache.mailet.Mail;
 import org.junit.Test;
@@ -111,28 +107,17 @@ public class URIRBLHandlerTest {
     }
 
     public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
-        MimeMessage message = new MimeMessage(new MockMimeMessage());
-        message.setText(text);
-        message.saveChanges();
-
-        return message;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .setText(text)
+            .build();
     }
 
     public MimeMessage setupMockedMimeMessageMP(String text) throws MessagingException {
-        MimeMessage message = new MimeMessage(new MockMimeMessage());
-
-        // Create the message part
-        BodyPart messageBodyPart = new MimeBodyPart();
-
-        // Fill the message
-        messageBodyPart.setText(text);
-
-        Multipart multipart = new MimeMultipart();
-        multipart.addBodyPart(messageBodyPart);
-        message.setContent(multipart);
-        message.saveChanges();
-
-        return message;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .setMultipartWithBodyParts(
+                MimeMessageBuilder.bodyPartBuilder()
+                    .data(text))
+            .build();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
index 2569678..e9f95ca 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
@@ -22,12 +22,11 @@ import java.util.Arrays;
 import java.util.Random;
 
 import javax.mail.MessagingException;
-import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.ParseException;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.smtpserver.mock.mailet.MockMail;
 
 /**
@@ -46,38 +45,15 @@ public class Util {
         return mockedMail;
     }
 
-    public static MockMimeMessage createMimeMessage() throws MessagingException {
-        return createMimeMessage(null, null);
-    }
-
-    public static MockMimeMessage createMimeMessageWithSubject(String subject) throws MessagingException {
-        return createMimeMessage(null, null, subject, 0);
-    }
-
-    public static MockMimeMessage createMimeMessage(String subject, int number) throws MessagingException {
-        return createMimeMessage(null, null, subject, number);
-    }
-
-    public static MockMimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
-        return createMimeMessage(headerName, headerValue, "testmail", 0);
-    }
-
-    public static MockMimeMessage createMimeMessage(String headerName, String headerValue, String subject, int number)
-            throws MessagingException {
+    public static MimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
         String sender = "test@james.apache.org";
         String rcpt = "test2@james.apache.org";
-
-        MockMimeMessage mockedMimeMessage = new MockMimeMessage(number);
-        mockedMimeMessage.setFrom(new InternetAddress(sender));
-        mockedMimeMessage.setRecipients(MimeMessage.RecipientType.TO, rcpt);
-        if (headerName != null) {
-            mockedMimeMessage.setHeader(headerName, headerValue);
-        }
-        if (subject != null) {
-            mockedMimeMessage.setSubject(subject);
-        }
-        mockedMimeMessage.setText("testtext");
-        mockedMimeMessage.saveChanges();
-        return mockedMimeMessage;
+        return MimeMessageBuilder.mimeMessageBuilder()
+            .addHeader(headerName, headerValue)
+            .setSubject("testmail")
+            .setText("testtext")
+            .addToRecipient(rcpt)
+            .addFrom(sender)
+            .build();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
deleted file mode 100644
index fe68393..0000000
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.smtpserver.mock;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.activation.DataHandler;
-import javax.mail.Address;
-import javax.mail.Flags;
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.InternetHeaders;
-import javax.mail.internet.MimeMessage;
-import javax.mail.search.SearchTerm;
-
-import com.github.steveash.guavate.Guavate;
-
-public class MockMimeMessage extends MimeMessage {
-
-    private final List<Address> fromAddresses = new ArrayList<>();
-    private Address senderAddress;
-    private final List<Address> toRecepients = new ArrayList<>();
-    private final List<Address> ccRecepients = new ArrayList<>();
-    private final List<Address> bccRecepients = new ArrayList<>();
-    private final List<Address> replyToAddresses = new ArrayList<>();
-    private String subject;
-    private int messageNumber;
-    private boolean isExpunged;
-    private Object content;
-    private Date sentDate;
-    private String[] contentLanguage;
-    private String fileName;
-    private DataHandler dataHandler;
-    private final HashMap<String, String> contentHeaders = new HashMap<>();
-    private final Flags setFlags = new Flags();
-    private boolean doMatch;
-
-    public MockMimeMessage() {
-        super((Session) null);
-    }
-
-    public MockMimeMessage(int messageNumber) {
-        super((Session) null);
-        this.messageNumber = messageNumber;
-    }
-
-    public MockMimeMessage(MimeMessage mimeMessage) throws MessagingException {
-        super(mimeMessage); // trivial implementation
-    }
-
-    @Override
-    public Address[] getFrom() throws MessagingException {
-        return fromAddresses.toArray(new Address[0]);
-    }
-
-    @Override
-    public void setFrom(Address address) throws MessagingException {
-        fromAddresses.clear();
-        fromAddresses.add(address);
-    }
-
-    @Override
-    public void setFrom() throws MessagingException {
-        fromAddresses.clear();
-        fromAddresses.add(InternetAddress.getLocalAddress(null));
-    }
-
-    @Override
-    public void addFrom(Address[] addresses) throws MessagingException {
-        fromAddresses.addAll(Arrays.asList(addresses));
-    }
-
-    @Override
-    public Address getSender() throws MessagingException {
-        return senderAddress;
-    }
-
-    @Override
-    public void setSender(Address address) throws MessagingException {
-        senderAddress = address;
-    }
-
-    @Override
-    public Address[] getRecipients(Message.RecipientType recipientType) throws MessagingException {
-        List<Address> recipientsList = getRecipientsList(recipientType);
-        return recipientsList.toArray(new Address[0]);
-    }
-
-    private List<Address> getRecipientsList(Message.RecipientType recipientType) {
-        if (Message.RecipientType.TO.equals(recipientType)) {
-            return toRecepients;
-        }
-        if (Message.RecipientType.CC.equals(recipientType)) {
-            return ccRecepients;
-        }
-        if (Message.RecipientType.BCC.equals(recipientType)) {
-            return bccRecepients;
-        }
-        return null;
-    }
-
-    @Override
-    public Address[] getAllRecipients() throws MessagingException {
-        List<Address> allRecipients = new ArrayList<>();
-        allRecipients.addAll(toRecepients);
-        allRecipients.addAll(ccRecepients);
-        allRecipients.addAll(bccRecepients);
-        return allRecipients.toArray(new Address[0]);
-    }
-
-    @Override
-    public void setRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException {
-        getRecipientsList(recipientType).addAll(Arrays.asList(addresses));
-    }
-
-    @Override
-    public void setRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException {
-        setRecipients(recipientType, InternetAddress.parse(recipient));
-    }
-
-    @Override
-    public void addRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException {
-        getRecipientsList(recipientType).addAll(Arrays.asList(addresses));
-    }
-
-    @Override
-    public void addRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException {
-        addRecipients(recipientType, InternetAddress.parse(recipient));
-    }
-
-    @Override
-    public Address[] getReplyTo() throws MessagingException {
-        return replyToAddresses.toArray(new Address[0]);
-    }
-
-    @Override
-    public void setReplyTo(Address[] addresses) throws MessagingException {
-        replyToAddresses.addAll(Arrays.asList(addresses));
-    }
-
-    @Override
-    public String getSubject() throws MessagingException {
-        return subject;
-    }
-
-    @Override
-    public void setSubject(String subject) throws MessagingException {
-        this.subject = subject;
-    }
-
-    @Override
-    public void setSubject(String subject, String charset) throws MessagingException {
-        if (subject == null) {
-            this.subject = null;
-            return;
-        }
-        try {
-            this.subject = new String(subject.getBytes(charset));
-        } catch (UnsupportedEncodingException e) {
-            throw new MessagingException("setting subject failed", e);
-        }
-    }
-
-    @Override
-    public Date getSentDate() throws MessagingException {
-        return sentDate;
-    }
-
-    @Override
-    public void setSentDate(Date date) throws MessagingException {
-        sentDate = date;
-    }
-
-    @Override
-    public Date getReceivedDate() throws MessagingException {
-        return null; // trivial implementation
-    }
-
-    @Override
-    public int getSize() throws MessagingException {
-        return -1; // trivial implementation
-    }
-
-    @Override
-    public int getLineCount() throws MessagingException {
-        return -1; // trivial implementation
-    }
-
-    @Override
-    public String getContentType() throws MessagingException {
-        return getHeader("Content-Type", null);
-    }
-
-    @Override
-    public boolean isMimeType(String mimeType) throws MessagingException {
-        return mimeType.startsWith(getContentType());
-    }
-
-    @Override
-    public String getDisposition() throws MessagingException {
-        return getHeader("Content-Disposition", null);
-    }
-
-    @Override
-    public void setDisposition(String disposition) throws MessagingException {
-        setHeader("Content-Disposition", disposition);
-    }
-
-    @Override
-    public String getEncoding() throws MessagingException {
-        return getHeader("Content-Transfer-Encoding", null);
-    }
-
-    @Override
-    public String getContentID() throws MessagingException {
-        return getHeader("Content-ID", null);
-    }
-
-    @Override
-    public void setContentID(String contentID) throws MessagingException {
-        setHeader("Content-ID", contentID);
-    }
-
-    @Override
-    public String getContentMD5() throws MessagingException {
-        return getHeader("Content-MD5", null);
-    }
-
-    @Override
-    public void setContentMD5(String value) throws MessagingException {
-        setHeader("Content-MD5", value);
-    }
-
-    @Override
-    public String getDescription() throws MessagingException {
-        return getHeader("Content-Description", null);
-    }
-
-    @Override
-    public void setDescription(String description) throws MessagingException {
-        setHeader("Content-Description", description);
-    }
-
-    @Override
-    public void setDescription(String description, String charset) throws MessagingException {
-        try {
-            setDescription(new String(description.getBytes(charset)));
-        } catch (UnsupportedEncodingException e) {
-            throw new MessagingException("setting description failed", e);
-        }
-    }
-
-    @Override
-    public String[] getContentLanguage() throws MessagingException {
-        return contentLanguage;
-    }
-
-    @Override
-    public void setContentLanguage(String[] contentLanguage) throws MessagingException {
-        this.contentLanguage = contentLanguage;
-    }
-
-    @Override
-    public String getMessageID() throws MessagingException {
-        return "ID-" + messageNumber; // trivial implementation
-    }
-
-    @Override
-    public String getFileName() throws MessagingException {
-        return fileName;
-    }
-
-    @Override
-    public void setFileName(String fileName) throws MessagingException {
-        this.fileName = fileName;
-    }
-
-    @Override
-    public InputStream getInputStream() throws IOException, MessagingException {
-        return null; // trivial implementation
-    }
-
-    @Override
-    protected InputStream getContentStream() throws MessagingException {
-        return null; // trivial implementation
-    }
-
-    @Override
-    public InputStream getRawInputStream() throws MessagingException {
-        if (content instanceof String) {
-            return new ByteArrayInputStream(content.toString().getBytes());
-        }
-        throw new UnsupportedOperationException("Unimplementated method");
-    }
-
-    @Override
-    public synchronized DataHandler getDataHandler() throws MessagingException {
-        return dataHandler;
-    }
-
-    @Override
-    public synchronized void setDataHandler(DataHandler dataHandler) throws MessagingException {
-        this.dataHandler = dataHandler;
-    }
-
-    @Override
-    public Object getContent() throws IOException, MessagingException {
-        return content;
-    }
-
-    @Override
-    public void setContent(Object object, String mimeType) throws MessagingException {
-        content = object; // trivial implementation
-    }
-
-    @Override
-    public void setText(String string) throws MessagingException {
-        setContent(string, "text/plain");
-    }
-
-    @Override
-    public void setText(String string, String charset) throws MessagingException {
-        try {
-            setContent(new String(string.getBytes(charset)), "text/plain");
-        } catch (UnsupportedEncodingException e) {
-            throw new MessagingException("setting text content failed", e);
-        }
-    }
-
-    @Override
-    public void setContent(Multipart multipart) throws MessagingException {
-        content = multipart;
-    }
-
-    @Override
-    public Message reply(boolean b) throws MessagingException {
-        return new MockMimeMessage(this); // trivial implementation
-    }
-
-    @Override
-    public void writeTo(OutputStream outputStream) throws IOException, MessagingException {
-        // trivial implementation
-    }
-
-    @Override
-    public void writeTo(OutputStream outputStream, String[] strings) throws IOException, MessagingException {
-        // trivial implementation
-    }
-
-    @Override
-    public String[] getHeader(String name) throws MessagingException {
-        String value = (String) contentHeaders.get(name);
-        if (value == null) {
-            return null;
-        }
-        return new String[]{value};
-    }
-
-    @Override
-    public String getHeader(String name, String delimiter) throws MessagingException {
-        String[] header = getHeader(name);
-        if (header == null || header.length == 0) {
-            return null;
-        }
-        return header[0];
-    }
-
-    @Override
-    public void setHeader(String name, String value) throws MessagingException {
-        addHeader(name, value);
-    }
-
-    @Override
-    public void addHeader(String name, String value) throws MessagingException {
-        contentHeaders.put(name, value);
-    }
-
-    @Override
-    public void removeHeader(String name) throws MessagingException {
-        contentHeaders.remove(name);
-    }
-
-    @Override
-    public Enumeration<String> getAllHeaders() throws MessagingException {
-        return Collections.enumeration(contentHeaders.values());
-    }
-
-    @Override
-    public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
-        ArrayList<String> matchingHeaders = new ArrayList<>();
-        for (String name : names) {
-            String value = getHeader(name, null);
-            if (value == null) {
-                continue;
-            }
-            matchingHeaders.add(value);
-        }
-        return Collections.enumeration(matchingHeaders);
-    }
-
-    @Override
-    public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
-        List<String> existingHeaders = Arrays.asList(names);
-
-        ArrayList<String> nonMatchingHeaders = new ArrayList<>();
-
-        for (String name : contentHeaders.keySet()) {
-            if (existingHeaders.contains(name)) {
-                continue;
-            }
-            String value = getHeader(name, null);
-            if (value == null) {
-                continue;
-            }
-            nonMatchingHeaders.add(value);
-        }
-        return Collections.enumeration(nonMatchingHeaders);
-    }
-
-    @Override
-    public void addHeaderLine(String headerLine) throws MessagingException {
-        int separatorIndex = headerLine.indexOf(":");
-        if (separatorIndex < 0) {
-            throw new MessagingException("header line does not conform to standard");
-        }
-
-        addHeader(headerLine.substring(0, separatorIndex), headerLine.substring(separatorIndex, headerLine.length()));
-    }
-
-    @Override
-    public Enumeration<String> getAllHeaderLines() throws MessagingException {
-        return Collections.enumeration(getHeadersAsStrings(contentHeaders));
-    }
-
-    private List<String> getHeadersAsStrings(HashMap<String, String> contentHeaders) {
-        return contentHeaders.entrySet()
-            .stream()
-            .map(entry -> entry.getKey() + ":" + entry.getValue())
-            .collect(Guavate.toImmutableList());
-    }
-
-    @Override
-    public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
-        ArrayList<String> matchingHeaders = new ArrayList<>();
-        for (String name : names) {
-            String value = getHeader(name, null);
-            if (value == null) {
-                continue;
-            }
-            matchingHeaders.add(name + ":" + value);
-        }
-        return Collections.enumeration(matchingHeaders);
-    }
-
-    @Override
-    public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
-        List<String> existingHeaders = names != null ? Arrays.asList(names) : null;
-
-        ArrayList<String> nonMatchingHeaders = new ArrayList<>();
-
-        for (String name : contentHeaders.keySet()) {
-            if (existingHeaders != null && existingHeaders.contains(name)) {
-                continue;
-            }
-            String value = getHeader(name, null);
-            if (value == null) {
-                continue;
-            }
-            nonMatchingHeaders.add(name + ":" + value);
-        }
-        return Collections.enumeration(nonMatchingHeaders);
-    }
-
-    @Override
-    public synchronized Flags getFlags() throws MessagingException {
-        return new Flags(setFlags);
-    }
-
-    @Override
-    public synchronized boolean isSet(Flags.Flag flag) throws MessagingException {
-        return setFlags.contains(flag);
-    }
-
-    @Override
-    public synchronized void setFlags(Flags flags, boolean set) throws MessagingException {
-        if (set) {
-            setFlags.add(flags);
-        } else {
-            setFlags.remove(flags);
-        }
-    }
-
-    @Override
-    public void saveChanges() throws MessagingException {
-        // trivial implementation
-    }
-
-    @Override
-    protected void updateHeaders() throws MessagingException {
-        // trivial implementation
-    }
-
-    @Override
-    protected InternetHeaders createInternetHeaders(InputStream inputStream) throws MessagingException {
-        return new InternetHeaders();
-    }
-
-    @Override
-    public void setRecipient(Message.RecipientType recipientType, Address address) throws MessagingException {
-        setRecipients(recipientType, new Address[]{address});
-    }
-
-    @Override
-    public void addRecipient(Message.RecipientType recipientType, Address address) throws MessagingException {
-        setRecipients(recipientType, new Address[]{address});
-    }
-
-    @Override
-    public void setFlag(Flags.Flag flag, boolean set) throws MessagingException {
-        if (set) {
-            setFlags.add(flag);
-        } else {
-            setFlags.remove(flag);
-        }
-    }
-
-    @Override
-    public int getMessageNumber() {
-        return messageNumber;
-    }
-
-    @Override
-    protected void setMessageNumber(int i) {
-        messageNumber = i;
-    }
-
-    @Override
-    public Folder getFolder() {
-        return null;
-    }
-
-    @Override
-    public boolean isExpunged() {
-        return isExpunged;
-    }
-
-    @Override
-    protected void setExpunged(boolean b) {
-        isExpunged = b;
-    }
-
-    public void setShouldMatch(boolean doMatch) {
-        this.doMatch = doMatch;
-    }
-
-    @Override
-    public boolean match(SearchTerm searchTerm) throws MessagingException {
-        return doMatch;
-    }
-}


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


[5/5] james-project git commit: JAMES-2305 Remove unused method and unaccurate comments from MimeMessageTest

Posted by bt...@apache.org.
JAMES-2305 Remove unused method and unaccurate comments from MimeMessageTest


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

Branch: refs/heads/master
Commit: 0ae36b29805c37ab2141dd17a2a121abe898c916
Parents: 7244396
Author: benwa <bt...@linagora.com>
Authored: Tue Jan 16 15:20:37 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:48:11 2018 +0700

----------------------------------------------------------------------
 .../server/core/MimeMessageFromStreamTest.java  |  5 ---
 .../james/server/core/MimeMessageTest.java      | 39 +-------------------
 2 files changed, 1 insertion(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0ae36b29/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java
index 1c0c000..49f27b1 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageFromStreamTest.java
@@ -47,11 +47,6 @@ public class MimeMessageFromStreamTest extends MimeMessageTest {
     }
 
     @Override
-    protected MimeMessage getMissingEncodingAddHeaderMessage() throws Exception {
-        return getMessageFromSources(getMissingEncodingAddHeaderSource());
-    }
-
-    @Override
     protected MimeMessage getMissingEncodingMessage() throws Exception {
         return getMessageFromSources(getMissingEncodingMessageSource());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/0ae36b29/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
index 7134a4a..479411b 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
@@ -42,16 +42,13 @@ import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.test.MimeMessageUtil;
 import org.junit.Test;
 
-/**
- * Test the subject folding issue.
- */
 public class MimeMessageTest {
 
     protected MimeMessage getSimpleMessage() throws Exception {
         return MimeMessageBuilder.mimeMessageBuilder()
             .addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)")
             .setSubject("test")
-            .setText("test body")
+            .setText("test body", "text/plain; charset=us-ascii")
             .build();
     }
 
@@ -89,9 +86,6 @@ public class MimeMessageTest {
         return "X-Test: foo\r\n" + getSimpleMessageCleanedSource();
     }
 
-    /*
-     * Class under test for String getSubject()
-     */
     @Test
     public void testSimpleMessage() throws Exception {
         MimeMessage m = getSimpleMessage();
@@ -193,19 +187,11 @@ public class MimeMessageTest {
                 + "mynewco=F2=E0=F9ntent=80=E0!";
     }
 
-    /*
-     * Class under test for String getSubject()
-     */
     @Test
     public void testMultipartMessageChanges() throws Exception {
 
         MimeMessage mm = getMultipartMessage();
 
-        // ByteArrayOutputStream out = new ByteArrayOutputStream();
-        // mmCreated.writeTo(out,new String[] {"Message-ID"});
-        // String messageSource = out.toString();
-        // System.out.println(messageSource);
-
         MimeMultipart content1 = (MimeMultipart) mm.getContent();
         BodyPart b1 = content1.getBodyPart(0);
         b1.setContent("test€", "text/plain; charset=Cp1252");
@@ -234,29 +220,12 @@ public class MimeMessageTest {
 
     }
 
-    protected MimeMessage getMissingEncodingAddHeaderMessage() throws Exception {
-        MimeMessage m = new MimeMessage(Session.getDefaultInstance(new Properties()));
-        m.setText("Testà\r\n");
-        m.setSubject("test");
-        m.saveChanges();
-        return m;
-    }
-
     protected String getMissingEncodingAddHeaderSource() {
         return "Subject: test\r\n"
                 + "\r\n"
                 + "Testà\r\n";
     }
 
-    protected String getMissingEncodingAddHeaderExpected() {
-        return "Subject: test\r\n"
-                + "MIME-Version: 1.0\r\n"
-                + "Content-Type: text/plain; charset=Cp1252\r\n"
-                + "Content-Transfer-Encoding: quoted-printable\r\n"
-                + "\r\n"
-                + "Test=E0\r\n";
-    }
-
     /**
      * This test is not usable in different locale environment.
      */
@@ -296,12 +265,6 @@ public class MimeMessageTest {
         return res;
     }
 
-    protected void debugMessage(MimeMessage mm) throws Exception {
-        System.out.println("-------------------");
-        System.out.println(getCleanedMessageSource(mm));
-        System.out.println("-------------------");
-    }
-
     protected MimeMessage getMissingEncodingMessage() throws Exception {
         MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
         mmCreated.setSubject("test");


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