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 ro...@apache.org on 2018/01/15 09:56:08 UTC

[9/9] james-project git commit: JAMES-2286 move MimeMessageBuilder to core

JAMES-2286 move MimeMessageBuilder to core


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

Branch: refs/heads/master
Commit: 3f0ba0bed42c1117faceef8fda8368e1b11c3651
Parents: b9e0823
Author: Matthieu Baechler <ma...@apache.org>
Authored: Fri Jan 12 14:35:47 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:02 2018 +0700

----------------------------------------------------------------------
 .../james/core/builder/MimeMessageBuilder.java  | 399 +++++++++++++++++++
 .../AutomaticallySentMailDetectorImplTest.java  |   2 +-
 .../org/apache/mailet/base/test/FakeMail.java   |   1 +
 .../org/apache/mailet/base/test/MailUtil.java   |   1 +
 .../mailet/base/test/MimeMessageBuilder.java    | 399 -------------------
 .../transport/mailets/ICALToHeadersTest.java    |   3 +-
 .../mailets/ICALToJsonAttributeTest.java        |   3 +-
 .../transport/mailets/ContactExtractorTest.java |   2 +-
 .../MailAttributesListToMimeHeadersTest.java    |   2 +-
 .../MailAttributesToMimeHeadersTest.java        |   2 +-
 .../mailets/RemoveMimeHeaderByPrefixTest.java   |   2 +-
 .../transport/mailets/RemoveMimeHeaderTest.java |   2 +-
 .../transport/mailets/StripAttachmentTest.java  |   2 +-
 .../mailets/UseHeaderRecipientsTest.java        |   2 +-
 .../mailets/utils/MimeMessageUtilsTest.java     |   2 +-
 .../james/transport/matchers/HasHeaderTest.java |   2 +-
 .../matchers/HasHeaderWithPrefixTest.java       |   2 +-
 .../transport/matchers/HasMimeTypeTest.java     |   2 +-
 .../transport/matchers/TooManyLinesTest.java    |   2 +-
 .../james/transport/mailets/AddFooterTest.java  |   2 +-
 .../mailets/AmqpForwardAttachmentTest.java      |   2 +-
 .../transport/mailets/ContactExtractorTest.java |   2 +-
 .../transport/mailets/GroupMappingTest.java     |   2 +-
 .../mailets/ICSAttachmentWorkflowTest.java      |   2 +-
 .../transport/mailets/SpamAssassinTest.java     |   2 +-
 .../transport/mailets/StripAttachmentTest.java  |   2 +-
 .../impl/JamesMailetContextTest.java            |   2 +-
 .../james/transport/mailets/BounceTest.java     |   2 +-
 .../transport/mailets/SpamAssassinTest.java     |   2 +-
 .../mailets/delivery/LocalDeliveryTest.java     |   2 +-
 .../mailets/delivery/MailDispatcherTest.java    |   2 +-
 .../mailets/delivery/MailboxAppenderTest.java   |   2 +-
 .../mailets/delivery/SieveIntegrationTest.java  |   4 +-
 .../mailets/delivery/SimpleMailStoreTest.java   |   2 +-
 .../mailets/delivery/ToRecipientFolderTest.java |   2 +-
 .../managesieve/ManageSieveMailetTestCase.java  |   2 +-
 .../mailrepository/MailRepositoryContract.java  |   1 +
 .../integration/SetMessagesMethodTest.java      |   2 +-
 .../TextCalendarBodyToAttachmentTest.java       |   2 +-
 39 files changed, 437 insertions(+), 436 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
new file mode 100644
index 0000000..42b845a
--- /dev/null
+++ b/core/src/main/java/org/apache/james/core/builder/MimeMessageBuilder.java
@@ -0,0 +1,399 @@
+/****************************************************************
+ * 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.core.builder;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+import java.util.Properties;
+
+import javax.activation.DataHandler;
+import javax.mail.BodyPart;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.AddressException;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.InternetHeaders;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.util.ByteArrayDataSource;
+
+import org.apache.commons.io.IOUtils;
+
+import com.github.fge.lambdas.Throwing;
+import com.github.steveash.guavate.Guavate;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+
+public class MimeMessageBuilder {
+
+    public static class Header {
+        private final String name;
+        private final String value;
+
+        public Header(String name, String value) {
+            this.name = name;
+            this.value = value;
+        }
+    }
+
+    public static class MultipartBuilder {
+        private ImmutableList.Builder<BodyPart> bodyParts = ImmutableList.builder();
+
+        public MultipartBuilder addBody(BodyPart bodyPart) {
+            this.bodyParts.add(bodyPart);
+            return this;
+        }
+
+        public MultipartBuilder addBody(BodyPartBuilder bodyPart) throws IOException, MessagingException {
+            this.bodyParts.add(bodyPart.build());
+            return this;
+        }
+
+        public MultipartBuilder addBodies(BodyPart... bodyParts) {
+            this.bodyParts.addAll(Arrays.asList(bodyParts));
+            return this;
+        }
+
+        public MultipartBuilder addBodies(BodyPartBuilder... bodyParts) {
+            this.bodyParts.addAll(Arrays.stream(bodyParts)
+                .map(Throwing.function(BodyPartBuilder::build).sneakyThrow())
+                .collect(Guavate.toImmutableList()));
+            return this;
+        }
+
+        public MimeMultipart build() throws MessagingException {
+            MimeMultipart multipart = new MimeMultipart();
+            List<BodyPart> bodyParts = this.bodyParts.build();
+            for (BodyPart bodyPart : bodyParts) {
+                multipart.addBodyPart(bodyPart);
+            }
+            return multipart;
+        }
+    }
+
+    public static class BodyPartBuilder {
+        public static final String DEFAULT_TEXT_PLAIN_UTF8_TYPE = "text/plain; charset=UTF-8";
+        public static final String DEFAULT_VALUE = "";
+
+        private Optional<String> cid = Optional.empty();
+        private Optional<String> filename = Optional.empty();
+        private ImmutableList.Builder<Header> headers = ImmutableList.builder();
+        private Optional<String> disposition = Optional.empty();
+        private Optional<String> dataAsString = Optional.empty();
+        private Optional<byte[]> dataAsBytes = Optional.empty();
+        private Optional<String> type = Optional.empty();
+
+        public BodyPartBuilder cid(String cid) {
+            this.cid = Optional.of(cid);
+            return this;
+        }
+
+        public BodyPartBuilder filename(String filename) {
+            this.filename = Optional.of(filename);
+            return this;
+        }
+
+        public BodyPartBuilder disposition(String disposition) {
+            this.disposition = Optional.of(disposition);
+            return this;
+        }
+
+        public BodyPartBuilder data(String data) {
+            this.dataAsString = Optional.of(data);
+            return this;
+        }
+
+        public BodyPartBuilder data(byte[] data) {
+            this.dataAsBytes = Optional.of(data);
+            return this;
+        }
+
+        public BodyPartBuilder type(String type) {
+            this.type = Optional.of(type);
+            return this;
+        }
+
+        public BodyPartBuilder addHeader(String name, String value) {
+            this.headers.add(new Header(name, value));
+            return this;
+        }
+
+        public BodyPartBuilder addHeaders(Header... headers) {
+            return addHeaders(Arrays.asList(headers));
+        }
+
+        public BodyPartBuilder addHeaders(Collection<Header> headers) {
+            this.headers.addAll(headers);
+            return this;
+        }
+
+        public BodyPart build() throws IOException, MessagingException {
+            Preconditions.checkState(!(dataAsString.isPresent() && dataAsBytes.isPresent()), "Can not specify data as bytes and data as string at the same time");
+            MimeBodyPart bodyPart = new MimeBodyPart();
+            if (dataAsBytes.isPresent()) {
+                bodyPart.setDataHandler(
+                    new DataHandler(
+                        new ByteArrayDataSource(
+                            dataAsBytes.get(),
+                            type.orElse(DEFAULT_TEXT_PLAIN_UTF8_TYPE))
+                    ));
+            } else {
+                bodyPart.setDataHandler(
+                    new DataHandler(
+                        new ByteArrayDataSource(
+                            dataAsString.orElse(DEFAULT_VALUE),
+                            type.orElse(DEFAULT_TEXT_PLAIN_UTF8_TYPE))
+                    ));
+            }
+            if (filename.isPresent()) {
+                bodyPart.setFileName(filename.get());
+            }
+            if (cid.isPresent()) {
+                bodyPart.setContentID(cid.get());
+            }
+            if (disposition.isPresent()) {
+                bodyPart.setDisposition(disposition.get());
+            }
+            List<Header> headerList = headers.build();
+            for (Header header: headerList) {
+                bodyPart.addHeader(header.name, header.value);
+            }
+            return bodyPart;
+        }
+    }
+
+    public static MimeMessage defaultMimeMessage() {
+        return new MimeMessage(Session.getDefaultInstance(new Properties()));
+    }
+
+    public static MimeMessage mimeMessageFromStream(InputStream inputStream) throws MessagingException {
+        return new MimeMessage(Session.getDefaultInstance(new Properties()), inputStream);
+    }
+
+    public static MimeMessage mimeMessageFromBytes(byte[] bytes) throws MessagingException {
+        return mimeMessageFromStream(new ByteArrayInputStream(bytes));
+    }
+
+    public static MimeMessageBuilder mimeMessageBuilder() {
+        return new MimeMessageBuilder();
+    }
+
+    public static MultipartBuilder multipartBuilder() {
+        return new MultipartBuilder();
+    }
+
+    public static BodyPartBuilder bodyPartBuilder() {
+        return new BodyPartBuilder();
+    }
+
+    public static BodyPart bodyPartFromBytes(byte[] bytes) throws MessagingException {
+        return new MimeBodyPart(new ByteArrayInputStream(bytes));
+    }
+
+    private Optional<String> text = Optional.empty();
+    private Optional<String> textContentType = Optional.empty();
+    private Optional<String> subject = Optional.empty();
+    private Optional<InternetAddress> sender = Optional.empty();
+    private Optional<MimeMultipart> content = Optional.empty();
+    private ImmutableList.Builder<InternetAddress> from = ImmutableList.builder();
+    private ImmutableList.Builder<InternetAddress> cc = ImmutableList.builder();
+    private ImmutableList.Builder<InternetAddress> to = ImmutableList.builder();
+    private ImmutableList.Builder<InternetAddress> bcc = ImmutableList.builder();
+    private ImmutableList.Builder<Header> headers = ImmutableList.builder();
+
+    public MimeMessageBuilder setText(String text) {
+        this.text = Optional.of(text);
+        return this;
+    }
+
+    public MimeMessageBuilder setText(String text, String contentType) {
+        this.text = Optional.of(text);
+        this.textContentType = Optional.of(contentType);
+        return this;
+    }
+
+    public MimeMessageBuilder addToRecipient(String text) throws AddressException {
+        this.to.add(new InternetAddress(text));
+        return this;
+    }
+
+    public MimeMessageBuilder setSubject(String subject) {
+        this.subject = Optional.ofNullable(subject);
+        return this;
+    }
+
+    public MimeMessageBuilder setSender(String sender) throws AddressException {
+        this.sender = Optional.of(new InternetAddress(sender));
+        return this;
+    }
+
+    public MimeMessageBuilder addFrom(String from) throws AddressException {
+        this.from.add(new InternetAddress(from));
+        return this;
+    }
+
+    public MimeMessageBuilder addFrom(InternetAddress... from) throws AddressException {
+        this.from.addAll(Arrays.asList(from));
+        return this;
+    }
+
+    public MimeMessageBuilder addCcRecipient(String text) throws AddressException {
+        this.cc.add(new InternetAddress(text));
+        return this;
+    }
+
+    public MimeMessageBuilder addBccRecipient(String text) throws AddressException {
+        this.bcc.add(new InternetAddress(text));
+        return this;
+    }
+
+    public MimeMessageBuilder addToRecipient(String... tos) throws AddressException {
+        this.to.addAll(Arrays.stream(tos)
+            .map(Throwing.function(InternetAddress::new))
+            .collect(Guavate.toImmutableList()));
+        return this;
+    }
+
+    public MimeMessageBuilder addCcRecipient(String... ccs) throws AddressException {
+        this.cc.addAll(Arrays.stream(ccs)
+            .map(Throwing.function(InternetAddress::new))
+            .collect(Guavate.toImmutableList()));
+        return this;
+    }
+
+    public MimeMessageBuilder addBccRecipient(String... bccs) throws AddressException {
+        this.bcc.addAll(Arrays.stream(bccs)
+            .map(Throwing.function(InternetAddress::new))
+            .collect(Guavate.toImmutableList()));
+        return this;
+    }
+
+    public MimeMessageBuilder addToRecipient(InternetAddress... tos) throws AddressException {
+        this.to.addAll(Arrays.asList(tos));
+        return this;
+    }
+
+    public MimeMessageBuilder addCcRecipient(InternetAddress... ccs) throws AddressException {
+        this.cc.addAll(Arrays.asList(ccs));
+        return this;
+    }
+
+    public MimeMessageBuilder addBccRecipient(InternetAddress... bccs) throws AddressException {
+        this.bcc.addAll(Arrays.asList(bccs));
+        return this;
+    }
+
+    public MimeMessageBuilder setContent(MimeMultipart mimeMultipart) {
+        this.content = Optional.of(mimeMultipart);
+        return this;
+    }
+
+    public MimeMessageBuilder setContent(MultipartBuilder mimeMultipart) throws MessagingException {
+        this.content = Optional.of(mimeMultipart.build());
+        return this;
+    }
+
+    public MimeMessageBuilder setMultipartWithBodyParts(BodyPart... bobyParts) throws MessagingException {
+        this.content = Optional.of(MimeMessageBuilder.multipartBuilder()
+            .addBodies(bobyParts)
+            .build());
+        return this;
+    }
+
+    public MimeMessageBuilder setMultipartWithBodyParts(BodyPartBuilder... bobyParts) throws MessagingException {
+        this.content = Optional.of(MimeMessageBuilder.multipartBuilder()
+            .addBodies(bobyParts)
+            .build());
+        return this;
+    }
+
+    public MimeMessageBuilder setMultipartWithSubMessage(MimeMessage mimeMessage) throws MessagingException, IOException {
+        return setMultipartWithBodyParts(
+            new MimeBodyPart(
+                new InternetHeaders(new ByteArrayInputStream("Content-Type: multipart/mixed".getBytes(StandardCharsets.US_ASCII))),
+                IOUtils.toByteArray(mimeMessage.getInputStream())));
+    }
+
+    public MimeMessageBuilder setMultipartWithSubMessage(MimeMessageBuilder mimeMessage) throws MessagingException, IOException {
+        return setMultipartWithSubMessage(mimeMessage.build());
+    }
+
+    public MimeMessageBuilder addHeader(String name, String value) {
+        this.headers.add(new Header(name, value));
+        return this;
+    }
+
+    public MimeMessageBuilder addHeaders(Header... headers) {
+        return addHeaders(Arrays.asList(headers));
+    }
+
+    public MimeMessageBuilder addHeaders(Collection<Header> headers) {
+        this.headers.addAll(headers);
+        return this;
+    }
+
+    public MimeMessage build() throws MessagingException {
+        Preconditions.checkState(!(text.isPresent() && content.isPresent()), "Can not get at the same time a text and a content");
+        MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties()));
+        if (text.isPresent()) {
+            mimeMessage.setContent(text.get(), textContentType.orElse("text/plain"));
+        }
+        if (content.isPresent()) {
+            mimeMessage.setContent(content.get());
+        }
+        if (sender.isPresent()) {
+            mimeMessage.setSender(sender.get());
+        }
+        if (subject.isPresent()) {
+            mimeMessage.setSubject(subject.get());
+        }
+        ImmutableList<InternetAddress> fromAddresses = from.build();
+        if (!fromAddresses.isEmpty()) {
+            mimeMessage.addFrom(fromAddresses.toArray(new InternetAddress[fromAddresses.size()]));
+        }
+        List<InternetAddress> toAddresses = to.build();
+        if (!toAddresses.isEmpty()) {
+            mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses.toArray(new InternetAddress[toAddresses.size()]));
+        }
+        List<InternetAddress> ccAddresses = cc.build();
+        if (!ccAddresses.isEmpty()) {
+            mimeMessage.setRecipients(Message.RecipientType.CC, ccAddresses.toArray(new InternetAddress[ccAddresses.size()]));
+        }
+        List<InternetAddress> bccAddresses = bcc.build();
+        if (!bccAddresses.isEmpty()) {
+            mimeMessage.setRecipients(Message.RecipientType.BCC, bccAddresses.toArray(new InternetAddress[bccAddresses.size()]));
+        }
+        List<Header> headerList = headers.build();
+        for (Header header: headerList) {
+            mimeMessage.addHeader(header.name, header.value);
+        }
+        mimeMessage.saveChanges();
+        return mimeMessage;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 6e2c135..864535f 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
@@ -32,8 +32,8 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 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.MimeMessageBuilder;
 import org.junit.Test;
 
 public class AutomaticallySentMailDetectorImplTest {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 23190b2..04530a8 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
@@ -39,6 +39,7 @@ 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.PerRecipientHeaders;
 import org.apache.mailet.PerRecipientHeaders.Header;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
index ea432be..ecbee4f 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/test/MailUtil.java
@@ -26,6 +26,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 
 /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java b/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
deleted file mode 100644
index 16e965a..0000000
--- a/mailet/base/src/test/java/org/apache/mailet/base/test/MimeMessageBuilder.java
+++ /dev/null
@@ -1,399 +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.mailet.base.test;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import java.util.Properties;
-
-import javax.activation.DataHandler;
-import javax.mail.BodyPart;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Session;
-import javax.mail.internet.AddressException;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.InternetHeaders;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.util.ByteArrayDataSource;
-
-import org.apache.commons.io.IOUtils;
-
-import com.github.fge.lambdas.Throwing;
-import com.github.steveash.guavate.Guavate;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-
-public class MimeMessageBuilder {
-
-    public static class Header {
-        private final String name;
-        private final String value;
-
-        public Header(String name, String value) {
-            this.name = name;
-            this.value = value;
-        }
-    }
-
-    public static class MultipartBuilder {
-        private ImmutableList.Builder<BodyPart> bodyParts = ImmutableList.builder();
-
-        public MultipartBuilder addBody(BodyPart bodyPart) {
-            this.bodyParts.add(bodyPart);
-            return this;
-        }
-
-        public MultipartBuilder addBody(BodyPartBuilder bodyPart) throws IOException, MessagingException {
-            this.bodyParts.add(bodyPart.build());
-            return this;
-        }
-
-        public MultipartBuilder addBodies(BodyPart... bodyParts) {
-            this.bodyParts.addAll(Arrays.asList(bodyParts));
-            return this;
-        }
-
-        public MultipartBuilder addBodies(BodyPartBuilder... bodyParts) {
-            this.bodyParts.addAll(Arrays.stream(bodyParts)
-                .map(Throwing.function(BodyPartBuilder::build).sneakyThrow())
-                .collect(Guavate.toImmutableList()));
-            return this;
-        }
-
-        public MimeMultipart build() throws MessagingException {
-            MimeMultipart multipart = new MimeMultipart();
-            List<BodyPart> bodyParts = this.bodyParts.build();
-            for (BodyPart bodyPart : bodyParts) {
-                multipart.addBodyPart(bodyPart);
-            }
-            return multipart;
-        }
-    }
-
-    public static class BodyPartBuilder {
-        public static final String DEFAULT_TEXT_PLAIN_UTF8_TYPE = "text/plain; charset=UTF-8";
-        public static final String DEFAULT_VALUE = "";
-
-        private Optional<String> cid = Optional.empty();
-        private Optional<String> filename = Optional.empty();
-        private ImmutableList.Builder<Header> headers = ImmutableList.builder();
-        private Optional<String> disposition = Optional.empty();
-        private Optional<String> dataAsString = Optional.empty();
-        private Optional<byte[]> dataAsBytes = Optional.empty();
-        private Optional<String> type = Optional.empty();
-
-        public BodyPartBuilder cid(String cid) {
-            this.cid = Optional.of(cid);
-            return this;
-        }
-
-        public BodyPartBuilder filename(String filename) {
-            this.filename = Optional.of(filename);
-            return this;
-        }
-
-        public BodyPartBuilder disposition(String disposition) {
-            this.disposition = Optional.of(disposition);
-            return this;
-        }
-
-        public BodyPartBuilder data(String data) {
-            this.dataAsString = Optional.of(data);
-            return this;
-        }
-
-        public BodyPartBuilder data(byte[] data) {
-            this.dataAsBytes = Optional.of(data);
-            return this;
-        }
-
-        public BodyPartBuilder type(String type) {
-            this.type = Optional.of(type);
-            return this;
-        }
-
-        public BodyPartBuilder addHeader(String name, String value) {
-            this.headers.add(new Header(name, value));
-            return this;
-        }
-
-        public BodyPartBuilder addHeaders(Header... headers) {
-            return addHeaders(Arrays.asList(headers));
-        }
-
-        public BodyPartBuilder addHeaders(Collection<Header> headers) {
-            this.headers.addAll(headers);
-            return this;
-        }
-
-        public BodyPart build() throws IOException, MessagingException {
-            Preconditions.checkState(!(dataAsString.isPresent() && dataAsBytes.isPresent()), "Can not specify data as bytes and data as string at the same time");
-            MimeBodyPart bodyPart = new MimeBodyPart();
-            if (dataAsBytes.isPresent()) {
-                bodyPart.setDataHandler(
-                    new DataHandler(
-                        new ByteArrayDataSource(
-                            dataAsBytes.get(),
-                            type.orElse(DEFAULT_TEXT_PLAIN_UTF8_TYPE))
-                    ));
-            } else {
-                bodyPart.setDataHandler(
-                    new DataHandler(
-                        new ByteArrayDataSource(
-                            dataAsString.orElse(DEFAULT_VALUE),
-                            type.orElse(DEFAULT_TEXT_PLAIN_UTF8_TYPE))
-                    ));
-            }
-            if (filename.isPresent()) {
-                bodyPart.setFileName(filename.get());
-            }
-            if (cid.isPresent()) {
-                bodyPart.setContentID(cid.get());
-            }
-            if (disposition.isPresent()) {
-                bodyPart.setDisposition(disposition.get());
-            }
-            List<Header> headerList = headers.build();
-            for (Header header: headerList) {
-                bodyPart.addHeader(header.name, header.value);
-            }
-            return bodyPart;
-        }
-    }
-
-    public static MimeMessage defaultMimeMessage() {
-        return new MimeMessage(Session.getDefaultInstance(new Properties()));
-    }
-
-    public static MimeMessage mimeMessageFromStream(InputStream inputStream) throws MessagingException {
-        return new MimeMessage(Session.getDefaultInstance(new Properties()), inputStream);
-    }
-
-    public static MimeMessage mimeMessageFromBytes(byte[] bytes) throws MessagingException {
-        return mimeMessageFromStream(new ByteArrayInputStream(bytes));
-    }
-
-    public static MimeMessageBuilder mimeMessageBuilder() {
-        return new MimeMessageBuilder();
-    }
-
-    public static MultipartBuilder multipartBuilder() {
-        return new MultipartBuilder();
-    }
-
-    public static BodyPartBuilder bodyPartBuilder() {
-        return new BodyPartBuilder();
-    }
-
-    public static BodyPart bodyPartFromBytes(byte[] bytes) throws MessagingException {
-        return new MimeBodyPart(new ByteArrayInputStream(bytes));
-    }
-
-    private Optional<String> text = Optional.empty();
-    private Optional<String> textContentType = Optional.empty();
-    private Optional<String> subject = Optional.empty();
-    private Optional<InternetAddress> sender = Optional.empty();
-    private Optional<MimeMultipart> content = Optional.empty();
-    private ImmutableList.Builder<InternetAddress> from = ImmutableList.builder();
-    private ImmutableList.Builder<InternetAddress> cc = ImmutableList.builder();
-    private ImmutableList.Builder<InternetAddress> to = ImmutableList.builder();
-    private ImmutableList.Builder<InternetAddress> bcc = ImmutableList.builder();
-    private ImmutableList.Builder<Header> headers = ImmutableList.builder();
-
-    public MimeMessageBuilder setText(String text) {
-        this.text = Optional.of(text);
-        return this;
-    }
-
-    public MimeMessageBuilder setText(String text, String contentType) {
-        this.text = Optional.of(text);
-        this.textContentType = Optional.of(contentType);
-        return this;
-    }
-
-    public MimeMessageBuilder addToRecipient(String text) throws AddressException {
-        this.to.add(new InternetAddress(text));
-        return this;
-    }
-
-    public MimeMessageBuilder setSubject(String subject) {
-        this.subject = Optional.ofNullable(subject);
-        return this;
-    }
-
-    public MimeMessageBuilder setSender(String sender) throws AddressException {
-        this.sender = Optional.of(new InternetAddress(sender));
-        return this;
-    }
-
-    public MimeMessageBuilder addFrom(String from) throws AddressException {
-        this.from.add(new InternetAddress(from));
-        return this;
-    }
-
-    public MimeMessageBuilder addFrom(InternetAddress... from) throws AddressException {
-        this.from.addAll(Arrays.asList(from));
-        return this;
-    }
-
-    public MimeMessageBuilder addCcRecipient(String text) throws AddressException {
-        this.cc.add(new InternetAddress(text));
-        return this;
-    }
-
-    public MimeMessageBuilder addBccRecipient(String text) throws AddressException {
-        this.bcc.add(new InternetAddress(text));
-        return this;
-    }
-
-    public MimeMessageBuilder addToRecipient(String... tos) throws AddressException {
-        this.to.addAll(Arrays.stream(tos)
-            .map(Throwing.function(InternetAddress::new))
-            .collect(Guavate.toImmutableList()));
-        return this;
-    }
-
-    public MimeMessageBuilder addCcRecipient(String... ccs) throws AddressException {
-        this.cc.addAll(Arrays.stream(ccs)
-            .map(Throwing.function(InternetAddress::new))
-            .collect(Guavate.toImmutableList()));
-        return this;
-    }
-
-    public MimeMessageBuilder addBccRecipient(String... bccs) throws AddressException {
-        this.bcc.addAll(Arrays.stream(bccs)
-            .map(Throwing.function(InternetAddress::new))
-            .collect(Guavate.toImmutableList()));
-        return this;
-    }
-
-    public MimeMessageBuilder addToRecipient(InternetAddress... tos) throws AddressException {
-        this.to.addAll(Arrays.asList(tos));
-        return this;
-    }
-
-    public MimeMessageBuilder addCcRecipient(InternetAddress... ccs) throws AddressException {
-        this.cc.addAll(Arrays.asList(ccs));
-        return this;
-    }
-
-    public MimeMessageBuilder addBccRecipient(InternetAddress... bccs) throws AddressException {
-        this.bcc.addAll(Arrays.asList(bccs));
-        return this;
-    }
-
-    public MimeMessageBuilder setContent(MimeMultipart mimeMultipart) {
-        this.content = Optional.of(mimeMultipart);
-        return this;
-    }
-
-    public MimeMessageBuilder setContent(MultipartBuilder mimeMultipart) throws MessagingException {
-        this.content = Optional.of(mimeMultipart.build());
-        return this;
-    }
-
-    public MimeMessageBuilder setMultipartWithBodyParts(BodyPart... bobyParts) throws MessagingException {
-        this.content = Optional.of(MimeMessageBuilder.multipartBuilder()
-            .addBodies(bobyParts)
-            .build());
-        return this;
-    }
-
-    public MimeMessageBuilder setMultipartWithBodyParts(BodyPartBuilder... bobyParts) throws MessagingException {
-        this.content = Optional.of(MimeMessageBuilder.multipartBuilder()
-            .addBodies(bobyParts)
-            .build());
-        return this;
-    }
-
-    public MimeMessageBuilder setMultipartWithSubMessage(MimeMessage mimeMessage) throws MessagingException, IOException {
-        return setMultipartWithBodyParts(
-            new MimeBodyPart(
-                new InternetHeaders(new ByteArrayInputStream("Content-Type: multipart/mixed".getBytes(StandardCharsets.US_ASCII))),
-                IOUtils.toByteArray(mimeMessage.getInputStream())));
-    }
-
-    public MimeMessageBuilder setMultipartWithSubMessage(MimeMessageBuilder mimeMessage) throws MessagingException, IOException {
-        return setMultipartWithSubMessage(mimeMessage.build());
-    }
-
-    public MimeMessageBuilder addHeader(String name, String value) {
-        this.headers.add(new Header(name, value));
-        return this;
-    }
-
-    public MimeMessageBuilder addHeaders(Header... headers) {
-        return addHeaders(Arrays.asList(headers));
-    }
-
-    public MimeMessageBuilder addHeaders(Collection<Header> headers) {
-        this.headers.addAll(headers);
-        return this;
-    }
-
-    public MimeMessage build() throws MessagingException {
-        Preconditions.checkState(!(text.isPresent() && content.isPresent()), "Can not get at the same time a text and a content");
-        MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties()));
-        if (text.isPresent()) {
-            mimeMessage.setContent(text.get(), textContentType.orElse("text/plain"));
-        }
-        if (content.isPresent()) {
-            mimeMessage.setContent(content.get());
-        }
-        if (sender.isPresent()) {
-            mimeMessage.setSender(sender.get());
-        }
-        if (subject.isPresent()) {
-            mimeMessage.setSubject(subject.get());
-        }
-        ImmutableList<InternetAddress> fromAddresses = from.build();
-        if (!fromAddresses.isEmpty()) {
-            mimeMessage.addFrom(fromAddresses.toArray(new InternetAddress[fromAddresses.size()]));
-        }
-        List<InternetAddress> toAddresses = to.build();
-        if (!toAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.TO, toAddresses.toArray(new InternetAddress[toAddresses.size()]));
-        }
-        List<InternetAddress> ccAddresses = cc.build();
-        if (!ccAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.CC, ccAddresses.toArray(new InternetAddress[ccAddresses.size()]));
-        }
-        List<InternetAddress> bccAddresses = bcc.build();
-        if (!bccAddresses.isEmpty()) {
-            mimeMessage.setRecipients(Message.RecipientType.BCC, bccAddresses.toArray(new InternetAddress[bccAddresses.size()]));
-        }
-        List<Header> headerList = headers.build();
-        for (Header header: headerList) {
-            mimeMessage.addHeader(header.name, header.value);
-        }
-        mimeMessage.saveChanges();
-        return mimeMessage;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java
index 924817a..fad4f66 100644
--- a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java
+++ b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToHeadersTest.java
@@ -23,17 +23,16 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
+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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
 import com.google.common.collect.ImmutableMap;
-
 import net.fortuna.ical4j.data.CalendarBuilder;
 import net.fortuna.ical4j.model.Calendar;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
index 13c4f47..96bf1ab 100644
--- a/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
+++ b/mailet/icalendar/src/test/java/org/apache/james/transport/mailets/ICALToJsonAttributeTest.java
@@ -32,12 +32,12 @@ import java.util.stream.Collectors;
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.util.ClassLoaderUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -45,7 +45,6 @@ import org.junit.rules.ExpectedException;
 
 import com.fasterxml.jackson.core.io.JsonStringEncoder;
 import com.google.common.collect.ImmutableMap;
-
 import net.fortuna.ical4j.data.CalendarBuilder;
 import net.fortuna.ical4j.model.Calendar;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 c6f1c41..dbf02d8 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
@@ -28,12 +28,12 @@ import static org.mockito.Mockito.when;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.MailetException;
 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java
index 0f6dec3..1dad2bb 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesListToMimeHeadersTest.java
@@ -25,11 +25,11 @@ import java.util.ArrayList;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
index 9235c51..b02fedf 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
@@ -23,11 +23,11 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.apache.mailet.base.test.MailUtil;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java
index f6dabe2..5008d8e 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefixTest.java
@@ -23,12 +23,12 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
index df2fa47..cfce358 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/RemoveMimeHeaderTest.java
@@ -27,11 +27,11 @@ import static org.mockito.Mockito.when;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 8315163..537a1d3 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -39,13 +39,13 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.transport.mailets.StripAttachment.OutputFileName;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java
index c326de3..2e2cb4a 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/UseHeaderRecipientsTest.java
@@ -22,12 +22,12 @@ package org.apache.james.transport.mailets;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 b7111c0..8130c3b 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
@@ -27,8 +27,8 @@ import java.util.Properties;
 import javax.mail.Session;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Test;
 
 public class MimeMessageUtilsTest {

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 c6e7af0..a241675 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
@@ -28,12 +28,12 @@ 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;
 import org.apache.mailet.base.test.FakeMatcherConfig;
 import org.apache.mailet.base.test.MailUtil;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java
index 734e798..b3843fa 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasHeaderWithPrefixTest.java
@@ -24,12 +24,12 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Matcher;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
index 97aa9cc..fbdff6c 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/HasMimeTypeTest.java
@@ -21,10 +21,10 @@ package org.apache.james.transport.matchers;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+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.FakeMatcherConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java b/mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java
index c190387..bd08510 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/matchers/TooManyLinesTest.java
@@ -26,9 +26,9 @@ import java.util.Collection;
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
index a50e3ed..5caac02 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
@@ -29,6 +29,7 @@ import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
 import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
 import static org.assertj.core.api.Assertions.assertThat;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -40,7 +41,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
index 54d7a79..dd35211 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.nio.charset.StandardCharsets;
 
 import org.apache.james.MemoryJamesServerMain;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -44,7 +45,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
index 52d7bbc..06cfa0d 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.util.Optional;
 
 import org.apache.james.MemoryJamesServerMain;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -44,7 +45,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
index 787d1e9..dbcdf8e 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
@@ -30,6 +30,7 @@ import static org.hamcrest.Matchers.equalTo;
 
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.jmap.mailet.VacationMailet;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailets.TemporaryJamesServer;
@@ -48,7 +49,6 @@ import org.apache.james.utils.SMTPMessageSender;
 import org.apache.james.utils.WebAdminGuiceProbe;
 import org.apache.james.webadmin.routes.GroupsRoutes;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
index a72d98a..e023c04 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
@@ -33,6 +33,7 @@ import java.util.Optional;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.MemoryJamesServerMain;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.jmap.mailet.TextCalendarBodyToAttachment;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
@@ -48,7 +49,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
index e5b97b4..f97bf1d 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
@@ -31,6 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -44,7 +45,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 065db56..967ce53 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.MemoryJamesServerMain;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailets.TemporaryJamesServer;
 import org.apache.james.mailets.configuration.CommonProcessors;
 import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -41,7 +42,6 @@ import org.apache.james.utils.DataProbeImpl;
 import org.apache.james.utils.IMAPMessageReader;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
index 5341325..fc88507 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
@@ -33,6 +33,7 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.lib.AbstractDomainList;
 import org.apache.james.domainlist.memory.MemoryDomainList;
@@ -41,7 +42,6 @@ import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.server.core.MailImpl;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.mailet.Mail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.assertj.core.api.JUnitSoftAssertions;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 146a2f2..8b42a9b 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
@@ -31,13 +31,13 @@ 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
index aba82cd..9fd2090 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import javax.mail.MessagingException;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.util.Port;
 import org.apache.james.util.scanner.SpamAssassinInvoker;
 import org.apache.james.utils.MockSpamd;
@@ -31,7 +32,6 @@ import org.apache.james.utils.MockSpamdTestRule;
 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.MimeMessageBuilder;
 import org.junit.Rule;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
index eb0e66f..2e62f9c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
@@ -35,6 +35,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
@@ -47,7 +48,6 @@ 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
index 7b0c680..6b5ce76 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
@@ -34,13 +34,13 @@ import javax.mail.MessagingException;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.PerRecipientHeaders.Header;
 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.FakeMailContext;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
index 363721c..866a70e 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
@@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -33,7 +34,6 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MessageResultIterator;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java
index a733c9e..1c77e9c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java
@@ -29,6 +29,8 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
+import org.apache.james.core.builder.MimeMessageBuilder.Header;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.sieverepository.api.exception.ScriptNotFoundException;
 import org.apache.james.transport.mailets.Sieve;
@@ -38,8 +40,6 @@ 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.MimeMessageBuilder;
-import org.apache.mailet.base.test.MimeMessageBuilder.Header;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
index ae2972c..414ec8e 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SimpleMailStoreTest.java
@@ -28,12 +28,12 @@ import static org.mockito.Mockito.when;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.metrics.api.Metric;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
index 0273ddf..524b7da 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -36,6 +36,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
@@ -49,7 +50,6 @@ 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.MimeMessageBuilder;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
index 28c81a2..f0eb7c3 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
@@ -38,6 +38,7 @@ import javax.mail.internet.MimeMultipart;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.managesieve.api.SieveParser;
 import org.apache.james.managesieve.api.SyntaxException;
 import org.apache.james.sieverepository.api.ScriptSummary;
@@ -48,7 +49,6 @@ 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
index fc1ea26..fc09978 100644
--- a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
+++ b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
@@ -30,6 +30,7 @@ import java.util.StringJoiner;
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mime4j.io.InputStreams;
 import org.apache.james.server.core.MailImpl;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index c4e3510..51ff6fa 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -56,6 +56,7 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.io.IOUtils;
 import org.apache.http.client.utils.URIBuilder;
 import org.apache.james.GuiceJamesServer;
+import org.apache.james.core.builder.MimeMessageBuilder;
 import org.apache.james.jmap.DefaultMailboxes;
 import org.apache.james.jmap.HttpJmapAuthentication;
 import org.apache.james.jmap.api.access.AccessToken;
@@ -86,7 +87,6 @@ import org.apache.james.utils.MessageIdProbe;
 import org.apache.james.utils.SMTPMessageSender;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
-import org.apache.mailet.base.test.MimeMessageBuilder;
 import org.hamcrest.Matcher;
 import org.hamcrest.Matchers;
 import org.junit.After;

http://git-wip-us.apache.org/repos/asf/james-project/blob/3f0ba0be/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 c9b40b5..9f832e8 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
@@ -32,10 +32,10 @@ import javax.mail.MessagingException;
 import javax.mail.Multipart;
 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.MimeMessageBuilder;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;


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