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:00 UTC
[1/9] james-project git commit: JAMES-2286 make junit5 tests run in
maven
Repository: james-project
Updated Branches:
refs/heads/master 9191d3bcb -> 8f197a4df
JAMES-2286 make junit5 tests run in maven
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d849f180
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d849f180
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d849f180
Branch: refs/heads/master
Commit: d849f1809c79a41eaeb7515d46921506a182d985
Parents: d8587c2
Author: Matthieu Baechler <ma...@apache.org>
Authored: Thu Jan 11 11:03:11 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:52:08 2018 +0700
----------------------------------------------------------------------
pom.xml | 31 ++++++++++++++++++++++++++++---
1 file changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d849f180/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3d46e7e..7f4c8cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -615,6 +615,9 @@
<dnsjava.version>2.1.1</dnsjava.version>
<junit.version>4.11</junit.version>
+ <junit.jupiter.version>5.0.2</junit.jupiter.version>
+ <junit.plateform.version>1.0.2</junit.plateform.version>
+ <junit.vintage.version>4.12.2</junit.vintage.version>
<jmock.version>2.6.0</jmock.version>
<concurrent.version>1.3.4</concurrent.version>
<log4j.version>1.2.17</log4j.version>
@@ -2136,12 +2139,17 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
- <version>5.0.2</version>
+ <version>${junit.jupiter.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-launcher</artifactId>
+ <version>${junit.plateform.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
- <version>4.12.2</version>
+ <version>${junit.vintage.version}</version>
</dependency>
<dependency>
<groupId>org.mnode.ical4j</groupId>
@@ -2556,13 +2564,30 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.20.1</version>
+ <version>2.19.1</version>
<configuration>
<argLine>-Xms512m -Xmx1024m</argLine>
<reuseForks>false</reuseForks>
<!-- Fail tests longer than 2 hours, prevent form random locking tests -->
<forkedProcessTimeoutInSeconds>7200</forkedProcessTimeoutInSeconds>
</configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>${junit.jupiter.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-surefire-provider</artifactId>
+ <version>${junit.plateform.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <version>${junit.vintage.version}</version>
+ </dependency>
+ </dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[8/9] james-project git commit: JAMES-2286 Extract value used several
time to a variable
Posted by ro...@apache.org.
JAMES-2286 Extract value used several time to a variable
This makes it clear it is the same value
Modifying the test is less error prone.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f3b8bb93
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f3b8bb93
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f3b8bb93
Branch: refs/heads/master
Commit: f3b8bb93d3ad5b6a87f8e62aa6d57788e031184e
Parents: 609c6ed
Author: benwa <bt...@linagora.com>
Authored: Fri Jan 12 10:03:53 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:02 2018 +0700
----------------------------------------------------------------------
.../mailrepository/MailRepositoryContract.java | 25 ++++++++++++--------
1 file changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f3b8bb93/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 4c2cddc..737dcda 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
@@ -85,9 +85,10 @@ public interface MailRepositoryContract {
@Test
default void retrieveShouldGetStoredMail() throws Exception {
MailRepository testee = retrieveRepository();
- Mail email = createMail("mail1");
+ String key1 = "mail1";
+ Mail email = createMail(key1);
testee.store(email);
- assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, email));
+ assertThat(testee.retrieve(key1)).satisfies(actual -> checkMailEquality(actual, email));
}
@Test
@@ -111,30 +112,34 @@ public interface MailRepositoryContract {
@Test
default void listShouldReturnStoredMailsKeys() throws Exception {
MailRepository testee = retrieveRepository();
- testee.store(createMail("mail1"));
- testee.store(createMail("mail2"));
- assertThat(testee.list()).containsExactly("mail1", "mail2");
+ String key1 = "mail1";
+ String key2 = "mail2";
+ testee.store(createMail(key1));
+ testee.store(createMail(key2));
+ assertThat(testee.list()).containsExactly(key1, key2);
}
@Test
default void storingMessageWithSameKeyTwiceShouldUpdateMessageContent() throws Exception {
MailRepository testee = retrieveRepository();
- testee.store(createMail("mail1"));
- Mail updatedMail = createMail("mail1", "modified content");
+ String key = "mail1";
+ testee.store(createMail(key));
+ Mail updatedMail = createMail(key, "modified content");
testee.store(updatedMail);
assertThat(testee.list()).hasSize(1);
- assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, updatedMail));
+ assertThat(testee.retrieve(key)).satisfies(actual -> checkMailEquality(actual, updatedMail));
}
@Test
default void storingMessageWithSameKeyTwiceShouldUpdateMessageAttributes() throws Exception {
MailRepository testee = retrieveRepository();
- Mail mail = createMail("mail1");
+ String key = "mail1";
+ Mail mail = createMail(key);
testee.store(mail);
mail.setAttribute(TEST_ATTRIBUTE, "newValue");
testee.store(mail);
assertThat(testee.list()).hasSize(1);
- assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, mail));
+ assertThat(testee.retrieve(key)).satisfies(actual -> checkMailEquality(actual, mail));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[5/9] james-project git commit: JAMES-2286 switch JDBC mailrepository
to new tests
Posted by ro...@apache.org.
JAMES-2286 switch JDBC mailrepository to new tests
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d885ffc9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d885ffc9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d885ffc9
Branch: refs/heads/master
Commit: d885ffc9b495d9e8e50d7e4fcdce1119d1b1bdb4
Parents: d849f18
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Jan 10 18:07:47 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:01 2018 +0700
----------------------------------------------------------------------
pom.xml | 6 +++
server/data/data-jdbc/pom.xml | 21 +++++++---
.../jdbc/JDBCDBFileMailRepositoryTest.java | 29 -------------
.../jdbc/JDBCMailRepositoryTest.java | 44 ++++++++++++++------
4 files changed, 54 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d885ffc9/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7f4c8cc..8a125d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1212,6 +1212,12 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-mailrepository-api</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-mailets</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/d885ffc9/server/data/data-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/pom.xml b/server/data/data-jdbc/pom.xml
index e80b44d..6bd59e3 100644
--- a/server/data/data-jdbc/pom.xml
+++ b/server/data/data-jdbc/pom.xml
@@ -71,6 +71,12 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-mailrepository-api</artifactId>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-util</artifactId>
</dependency>
<dependency>
@@ -110,11 +116,6 @@
<artifactId>javax.inject</artifactId>
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
@@ -129,6 +130,16 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/d885ffc9/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCDBFileMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCDBFileMailRepositoryTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCDBFileMailRepositoryTest.java
deleted file mode 100644
index 84bc14a..0000000
--- a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCDBFileMailRepositoryTest.java
+++ /dev/null
@@ -1,29 +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.mailrepository.jdbc;
-
-public class JDBCDBFileMailRepositoryTest extends JDBCMailRepositoryTest {
-
- @Override
- protected String getType() {
- return "dbfile";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d885ffc9/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
index 13a42ce..adffb1e 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
@@ -19,36 +19,51 @@
package org.apache.james.mailrepository.jdbc;
+import java.sql.SQLException;
+
import javax.sql.DataSource;
import org.apache.commons.configuration.DefaultConfigurationBuilder;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.derby.jdbc.EmbeddedDriver;
import org.apache.james.filesystem.api.mock.MockFileSystem;
-import org.apache.james.mailrepository.AbstractMailRepositoryTest;
+import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.mailrepository.MailRepositoryContract;
import org.apache.james.mailrepository.api.MailRepository;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
-public class JDBCMailRepositoryTest extends AbstractMailRepositoryTest {
+public class JDBCMailRepositoryTest implements MailRepositoryContract {
- @Override
- protected MailRepository getMailRepository() throws Exception {
+ private JDBCMailRepository mailRepository;
+
+ @BeforeEach
+ void init() throws Exception {
MockFileSystem fs = new MockFileSystem();
DataSource datasource = getDataSource();
- JDBCMailRepository mr = new JDBCMailRepository();
+ mailRepository = new JDBCMailRepository();
DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
defaultConfiguration.addProperty("[@destinationURL]", "db://maildb/mr/testrepo");
defaultConfiguration.addProperty("sqlFile", "file://conf/sqlResources.xml");
defaultConfiguration.addProperty("[@type]", "MAIL");
- mr.setFileSystem(fs);
- mr.setDatasource(datasource);
- mr.configure(defaultConfiguration);
- mr.init();
- return mr;
+ mailRepository.setFileSystem(fs);
+ mailRepository.setDatasource(datasource);
+ mailRepository.configure(defaultConfiguration);
+ mailRepository.init();
+ }
+
+ @AfterEach
+ void tearDown() throws SQLException {
+ mailRepository.getConnection().prepareStatement("DELETE from " + mailRepository.tableName).execute();
+ LifecycleUtil.dispose(mailRepository);
}
- protected String getType() {
- return "db";
+ @Override
+ public MailRepository retrieveRepository() {
+ return mailRepository;
}
private BasicDataSource getDataSource() {
@@ -60,4 +75,9 @@ public class JDBCMailRepositoryTest extends AbstractMailRepositoryTest {
return ds;
}
+ @Test
+ @Disabled("JAMES-2304 JDBC doesn't update the message Content")
+ @Override
+ public void storingMessageWithSameKeyTwiceShouldUpdateMessageContent() {
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[7/9] james-project git commit: JAMES-2286 Adding line breaks makes
test reading easier
Posted by ro...@apache.org.
JAMES-2286 Adding line breaks makes test reading easier
That create implicitly the de-facto team-standard given/when/then blocks.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8f197a4d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8f197a4d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8f197a4d
Branch: refs/heads/master
Commit: 8f197a4df92b182ec6528d96a72ea2b69474b523
Parents: f3b8bb9
Author: benwa <bt...@linagora.com>
Authored: Fri Jan 12 10:06:24 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:02 2018 +0700
----------------------------------------------------------------------
.../mailrepository/MailRepositoryContract.java | 24 +++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/8f197a4d/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 737dcda..92cd111 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
@@ -78,34 +78,40 @@ public interface MailRepositoryContract {
@Test
default void storeRegularMailShouldNotFail() throws Exception {
MailRepository testee = retrieveRepository();
- Mail email = createMail("mail1");
- testee.store(email);
+ Mail mail = createMail("mail1");
+
+ testee.store(mail);
}
@Test
default void retrieveShouldGetStoredMail() throws Exception {
MailRepository testee = retrieveRepository();
String key1 = "mail1";
- Mail email = createMail(key1);
- testee.store(email);
- assertThat(testee.retrieve(key1)).satisfies(actual -> checkMailEquality(actual, email));
+ Mail mail = createMail(key1);
+
+ testee.store(mail);
+
+ assertThat(testee.retrieve(key1)).satisfies(actual -> checkMailEquality(actual, mail));
}
@Test
default void newlyCreatedRepositoryShouldNotContainAnyMail() throws Exception {
MailRepository testee = retrieveRepository();
+
assertThat(testee.list()).isEmpty();
}
@Test
default void retrievingUnknownMailShouldReturnNull() throws Exception {
MailRepository testee = retrieveRepository();
+
assertThat(testee.retrieve("random")).isNull();
}
@Test
default void removingUnknownMailShouldHaveNoEffect() throws Exception {
MailRepository testee = retrieveRepository();
+
testee.remove("random");
}
@@ -115,8 +121,10 @@ public interface MailRepositoryContract {
String key1 = "mail1";
String key2 = "mail2";
testee.store(createMail(key1));
+
testee.store(createMail(key2));
- assertThat(testee.list()).containsExactly(key1, key2);
+
+ assertThat(testee.list()).containsOnly(key1, key2);
}
@Test
@@ -124,8 +132,10 @@ public interface MailRepositoryContract {
MailRepository testee = retrieveRepository();
String key = "mail1";
testee.store(createMail(key));
+
Mail updatedMail = createMail(key, "modified content");
testee.store(updatedMail);
+
assertThat(testee.list()).hasSize(1);
assertThat(testee.retrieve(key)).satisfies(actual -> checkMailEquality(actual, updatedMail));
}
@@ -136,8 +146,10 @@ public interface MailRepositoryContract {
String key = "mail1";
Mail mail = createMail(key);
testee.store(mail);
+
mail.setAttribute(TEST_ATTRIBUTE, "newValue");
testee.store(mail);
+
assertThat(testee.list()).hasSize(1);
assertThat(testee.retrieve(key)).satisfies(actual -> checkMailEquality(actual, mail));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[3/9] james-project git commit: JAMES-2286 create a
mailrepository-api project
Posted by ro...@apache.org.
JAMES-2286 create a mailrepository-api project
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/55af3123
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/55af3123
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/55af3123
Branch: refs/heads/master
Commit: 55af312396f4731d01be68eaf565164dc0c5fbd0
Parents: 9191d3b
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Jan 10 17:44:03 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:52:08 2018 +0700
----------------------------------------------------------------------
pom.xml | 5 +
server/data/data-api/pom.xml | 4 +
.../mailrepository/api/MailRepository.java | 106 -------------------
.../mailrepository/mailrepository-api/pom.xml | 62 +++++++++++
.../mailrepository/api/MailRepository.java | 106 +++++++++++++++++++
server/pom.xml | 2 +
6 files changed, 179 insertions(+), 106 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 22e35e1..74b22fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1204,6 +1204,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-mailrepository-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-mailets</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/server/data/data-api/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-api/pom.xml b/server/data/data-api/pom.xml
index 7052d31..26fc6ef 100644
--- a/server/data/data-api/pom.xml
+++ b/server/data/data-api/pom.xml
@@ -39,6 +39,10 @@
<artifactId>apache-mailet-api</artifactId>
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-mailrepository-api</artifactId>
+ </dependency>
+ <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java b/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
deleted file mode 100644
index aa2ff34..0000000
--- a/server/data/data-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
+++ /dev/null
@@ -1,106 +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.mailrepository.api;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import javax.mail.MessagingException;
-
-import org.apache.mailet.Mail;
-
-/**
- * Interface for a Repository to store Mails.
- */
-public interface MailRepository {
-
- /**
- * Stores a message in this repository.
- *
- * TODO: Shouldn't this return the key under which it is stored?
- *
- * @param mc
- * the mail message to store
- */
- void store(Mail mc) throws MessagingException;
-
- /**
- * List string keys of messages in repository.
- *
- * @return an <code>Iterator</code> over the list of keys in the repository
- *
- */
- Iterator<String> list() throws MessagingException;
-
- /**
- * Retrieves a message given a key. At the moment, keys can be obtained from
- * list() in superinterface Store.Repository
- *
- * @param key
- * the key of the message to retrieve
- * @return the mail corresponding to this key, null if none exists
- */
- Mail retrieve(String key) throws MessagingException;
-
- /**
- * Removes a specified message
- *
- * @param mail
- * the message to be removed from the repository
- */
- void remove(Mail mail) throws MessagingException;
-
- /**
- * Remove an Collection of mails from the repository
- *
- * @param mails
- * The Collection of <code>MailImpl</code>'s to delete
- * @since 2.2.0
- */
- void remove(Collection<Mail> mails) throws MessagingException;
-
- /**
- * Removes a message identified by key.
- *
- * @param key
- * the key of the message to be removed from the repository
- */
- 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
- */
- 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
- */
- boolean unlock(String key) throws MessagingException;
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/server/mailrepository/mailrepository-api/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-api/pom.xml b/server/mailrepository/mailrepository-api/pom.xml
new file mode 100644
index 0000000..2c60417
--- /dev/null
+++ b/server/mailrepository/mailrepository-api/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.james</groupId>
+ <artifactId>james-server</artifactId>
+ <version>3.1.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>james-server-mailrepository-api</artifactId>
+ <packaging>bundle</packaging>
+
+ <name>Apache James :: Server :: MailRepository :: API</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>apache-mailet-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/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
new file mode 100644
index 0000000..aa2ff34
--- /dev/null
+++ b/server/mailrepository/mailrepository-api/src/main/java/org/apache/james/mailrepository/api/MailRepository.java
@@ -0,0 +1,106 @@
+/****************************************************************
+ * 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.mailrepository.api;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import javax.mail.MessagingException;
+
+import org.apache.mailet.Mail;
+
+/**
+ * Interface for a Repository to store Mails.
+ */
+public interface MailRepository {
+
+ /**
+ * Stores a message in this repository.
+ *
+ * TODO: Shouldn't this return the key under which it is stored?
+ *
+ * @param mc
+ * the mail message to store
+ */
+ void store(Mail mc) throws MessagingException;
+
+ /**
+ * List string keys of messages in repository.
+ *
+ * @return an <code>Iterator</code> over the list of keys in the repository
+ *
+ */
+ Iterator<String> list() throws MessagingException;
+
+ /**
+ * Retrieves a message given a key. At the moment, keys can be obtained from
+ * list() in superinterface Store.Repository
+ *
+ * @param key
+ * the key of the message to retrieve
+ * @return the mail corresponding to this key, null if none exists
+ */
+ Mail retrieve(String key) throws MessagingException;
+
+ /**
+ * Removes a specified message
+ *
+ * @param mail
+ * the message to be removed from the repository
+ */
+ void remove(Mail mail) throws MessagingException;
+
+ /**
+ * Remove an Collection of mails from the repository
+ *
+ * @param mails
+ * The Collection of <code>MailImpl</code>'s to delete
+ * @since 2.2.0
+ */
+ void remove(Collection<Mail> mails) throws MessagingException;
+
+ /**
+ * Removes a message identified by key.
+ *
+ * @param key
+ * the key of the message to be removed from the repository
+ */
+ 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
+ */
+ 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
+ */
+ boolean unlock(String key) throws MessagingException;
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/55af3123/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 3414224..11693e3 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -80,6 +80,8 @@
<module>mailet/mailetcontainer-camel</module>
<module>mailet/mailets</module>
+ <module>mailrepository/mailrepository-api</module>
+
<module>protocols/fetchmail</module>
<module>protocols/jmap</module>
<module>protocols/jmap-integration-testing</module>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[4/9] james-project git commit: JAMES-2286 workaround for
junit5/eclipse support
Posted by ro...@apache.org.
JAMES-2286 workaround for junit5/eclipse support
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b9e08232
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b9e08232
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b9e08232
Branch: refs/heads/master
Commit: b9e082324169e397e674200d0a9b38b01d4cd079
Parents: d885ffc
Author: Matthieu Baechler <ma...@apache.org>
Authored: Thu Jan 11 11:04:28 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:01 2018 +0700
----------------------------------------------------------------------
pom.xml | 5 +++++
server/data/data-jdbc/pom.xml | 5 +++++
2 files changed, 10 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b9e08232/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8a125d2..c0b642d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2153,6 +2153,11 @@
<version>${junit.plateform.version}</version>
</dependency>
<dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-launcher</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ <dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>${junit.vintage.version}</version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/b9e08232/server/data/data-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/pom.xml b/server/data/data-jdbc/pom.xml
index 6bd59e3..a0532c2 100644
--- a/server/data/data-jdbc/pom.xml
+++ b/server/data/data-jdbc/pom.xml
@@ -135,6 +135,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-launcher</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/9] james-project git commit: JAMES-2286 port
AbstractMailRepositoryTest to a junit5 contract class
Posted by ro...@apache.org.
JAMES-2286 port AbstractMailRepositoryTest to a junit5 contract class
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d8587c25
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d8587c25
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d8587c25
Branch: refs/heads/master
Commit: d8587c255eec47946f59bff325c084a87bcad016
Parents: 55af312
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Jan 10 17:55:50 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:52:08 2018 +0700
----------------------------------------------------------------------
pom.xml | 10 ++
.../mailrepository/mailrepository-api/pom.xml | 15 ++
.../mailrepository/MailRepositoryContract.java | 145 +++++++++++++++++++
3 files changed, 170 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d8587c25/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 74b22fe..3d46e7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2134,6 +2134,16 @@
<version>${jmock.version}</version>
</dependency>
<dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>5.0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ <version>4.12.2</version>
+ </dependency>
+ <dependency>
<groupId>org.mnode.ical4j</groupId>
<artifactId>ical4j</artifactId>
<version>${ical4j.version}</version>
http://git-wip-us.apache.org/repos/asf/james-project/blob/d8587c25/server/mailrepository/mailrepository-api/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-api/pom.xml b/server/mailrepository/mailrepository-api/pom.xml
index 2c60417..b2fc1e7 100644
--- a/server/mailrepository/mailrepository-api/pom.xml
+++ b/server/mailrepository/mailrepository-api/pom.xml
@@ -37,6 +37,21 @@
<groupId>${project.groupId}</groupId>
<artifactId>apache-mailet-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/james-project/blob/d8587c25/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
new file mode 100644
index 0000000..fc1ea26
--- /dev/null
+++ b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java
@@ -0,0 +1,145 @@
+/****************************************************************
+ * 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.mailrepository;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertAll;
+
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.StringJoiner;
+
+import javax.mail.MessagingException;
+
+import org.apache.james.core.MailAddress;
+import org.apache.james.mailrepository.api.MailRepository;
+import org.apache.james.mime4j.io.InputStreams;
+import org.apache.james.server.core.MailImpl;
+import org.apache.mailet.Mail;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.collect.ImmutableList;
+
+public interface MailRepositoryContract {
+
+ String TEST_ATTRIBUTE = "testAttribute";
+
+ default Mail createMail(String name) throws MessagingException {
+ return createMail(name, "original body");
+ }
+
+ default Mail createMail(String name, String body) throws MessagingException {
+ InputStream mailContent = generateMailContent(body);
+ List<MailAddress> recipients = ImmutableList
+ .of(new MailAddress("rec1@domain.com"),
+ new MailAddress("rec2@domain.com"));
+ MailAddress sender = new MailAddress("sender@domain.com");
+ Mail mail = new MailImpl(name, sender, recipients, mailContent);
+ mail.setAttribute(TEST_ATTRIBUTE, "testValue");
+ return mail;
+ }
+
+
+ default InputStream generateMailContent(String body) {
+ String headers = new StringJoiner("\r\n")
+ .add("Subject: test")
+ .add("Content-Type: text/plain")
+ .toString();
+ String headerBodySeparator = "\r\n\r\n";
+ String end = "\r\n.\r\n";
+ return InputStreams.create(headers + headerBodySeparator + body + end, StandardCharsets.UTF_8);
+ }
+
+ default void checkMailEquality(Mail actual, Mail expected) {
+ assertAll(
+ () -> assertThat(actual.getMessage().getContent()).isEqualTo(expected.getMessage().getContent()),
+ () -> assertThat(actual.getMessageSize()).isEqualTo(expected.getMessageSize()),
+ () -> assertThat(actual.getName()).isEqualTo(expected.getName()),
+ () -> assertThat(actual.getState()).isEqualTo(expected.getState()),
+ () -> assertThat(actual.getAttribute(TEST_ATTRIBUTE)).isEqualTo(expected.getAttribute(TEST_ATTRIBUTE))
+ );
+ }
+
+ MailRepository retrieveRepository() throws Exception;
+
+ @Test
+ default void storeRegularMailShouldNotFail() throws Exception {
+ MailRepository testee = retrieveRepository();
+ Mail email = createMail("mail1");
+ testee.store(email);
+ }
+
+ @Test
+ default void retrieveShouldGetStoredMail() throws Exception {
+ MailRepository testee = retrieveRepository();
+ Mail email = createMail("mail1");
+ testee.store(email);
+ assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, email));
+ }
+
+ @Test
+ default void newlyCreatedRepositoryShouldNotContainAnyMail() throws Exception {
+ MailRepository testee = retrieveRepository();
+ assertThat(testee.list()).isEmpty();
+ }
+
+ @Test
+ default void retrievingUnknownMailShouldReturnNull() throws Exception {
+ MailRepository testee = retrieveRepository();
+ assertThat(testee.retrieve("random")).isNull();
+ }
+
+ @Test
+ default void removingUnknownMailShouldHaveNoEffect() throws Exception {
+ MailRepository testee = retrieveRepository();
+ testee.remove("random");
+ }
+
+ @Test
+ default void listShouldReturnStoredMailsKeys() throws Exception {
+ MailRepository testee = retrieveRepository();
+ testee.store(createMail("mail1"));
+ testee.store(createMail("mail2"));
+ assertThat(testee.list()).containsExactly("mail1", "mail2");
+ }
+
+ @Test
+ default void storingMessageWithSameKeyTwiceShouldUpdateMessageContent() throws Exception {
+ MailRepository testee = retrieveRepository();
+ testee.store(createMail("mail1"));
+ Mail updatedMail = createMail("mail1", "modified content");
+ testee.store(updatedMail);
+ assertThat(testee.list()).hasSize(1);
+ assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, updatedMail));
+ }
+
+ @Test
+ default void storingMessageWithSameKeyTwiceShouldUpdateMessageAttributes() throws Exception {
+ MailRepository testee = retrieveRepository();
+ Mail mail = createMail("mail1");
+ testee.store(mail);
+ mail.setAttribute(TEST_ATTRIBUTE, "newValue");
+ testee.store(mail);
+ assertThat(testee.list()).hasSize(1);
+ assertThat(testee.retrieve("mail1")).satisfies(actual -> checkMailEquality(actual, mail));
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[9/9] james-project git commit: JAMES-2286 move MimeMessageBuilder to
core
Posted by ro...@apache.org.
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
[6/9] james-project git commit: JAMES-2286 Rely on MimeMessageBuilder
rather than handcrafting messages
Posted by ro...@apache.org.
JAMES-2286 Rely on MimeMessageBuilder rather than handcrafting messages
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/609c6ed3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/609c6ed3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/609c6ed3
Branch: refs/heads/master
Commit: 609c6ed36d994775ea3e9d76053bb5680eab2927
Parents: 3f0ba0b
Author: benwa <bt...@linagora.com>
Authored: Fri Jan 12 10:00:13 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 15 16:54:02 2018 +0700
----------------------------------------------------------------------
.../mailrepository/MailRepositoryContract.java | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/609c6ed3/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 fc09978..4c2cddc 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
@@ -22,17 +22,14 @@ package org.apache.james.mailrepository;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertAll;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
import java.util.List;
-import java.util.StringJoiner;
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.james.mailrepository.api.MailRepository;
-import org.apache.james.mime4j.io.InputStreams;
import org.apache.james.server.core.MailImpl;
import org.apache.mailet.Mail;
import org.junit.jupiter.api.Test;
@@ -48,7 +45,7 @@ public interface MailRepositoryContract {
}
default Mail createMail(String name, String body) throws MessagingException {
- InputStream mailContent = generateMailContent(body);
+ MimeMessage mailContent = generateMailContent(body);
List<MailAddress> recipients = ImmutableList
.of(new MailAddress("rec1@domain.com"),
new MailAddress("rec2@domain.com"));
@@ -59,14 +56,11 @@ public interface MailRepositoryContract {
}
- default InputStream generateMailContent(String body) {
- String headers = new StringJoiner("\r\n")
- .add("Subject: test")
- .add("Content-Type: text/plain")
- .toString();
- String headerBodySeparator = "\r\n\r\n";
- String end = "\r\n.\r\n";
- return InputStreams.create(headers + headerBodySeparator + body + end, StandardCharsets.UTF_8);
+ default MimeMessage generateMailContent(String body) throws MessagingException {
+ return MimeMessageBuilder.mimeMessageBuilder()
+ .setSubject("test")
+ .setText(body)
+ .build();
}
default void checkMailEquality(Mail actual, Mail expected) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org