You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/01/22 00:56:11 UTC
[2/5] james-project git commit: JAMES-2305 Update to javax.mail 1.6.0
JAMES-2305 Update to javax.mail 1.6.0
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f9b08643
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f9b08643
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f9b08643
Branch: refs/heads/master
Commit: f9b08643ba301517c21f420d8acc1f28c86d5fc0
Parents: c3a109a
Author: benwa <bt...@linagora.com>
Authored: Mon Jan 15 15:52:38 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Mon Jan 22 07:47:52 2018 +0700
----------------------------------------------------------------------
.../ai/classic/BayesianAnalysisFeeder.java | 5 +-
.../james/transport/mailets/AbstractSign.java | 6 +-
.../james/transport/mailets/LogMessage.java | 3 +-
.../mailets/utils/MimeMessageUtils.java | 7 +-
.../james/transport/matchers/RelayLimit.java | 2 +-
.../james/transport/mailets/AddFooterTest.java | 96 +--
.../mailets/utils/MimeMessageUtilsTest.java | 4 +-
pom.xml | 2 +-
.../core/MimeMessageCopyOnWriteProxy.java | 13 +-
.../james/server/core/MimeMessageUtil.java | 5 +-
.../james/server/core/MimeMessageWrapper.java | 14 +-
.../james/server/core/MimeMessageTest.java | 12 +-
.../server/core/MimeMessageWrapperTest.java | 6 +-
.../mailets/BayesianAnalysisFeeder.java | 1 -
.../mailets/jsieve/SieveMailAdapter.java | 4 +-
.../mailets/jsieve/VacationAction.java | 4 +-
.../redirect/MailMessageAlteringUtils.java | 1 -
.../samples/mailets/InstrumentationMailet.java | 2 -
.../james/fetchmail/MessageProcessor.java | 3 -
.../mailet/TextCalendarBodyToAttachment.java | 4 +-
.../smtpserver/SpamAssassinHandlerTest.java | 10 +-
.../james/smtpserver/URIRBLHandlerTest.java | 33 +-
.../java/org/apache/james/smtpserver/Util.java | 42 +-
.../james/smtpserver/mock/MockMimeMessage.java | 591 -------------------
24 files changed, 83 insertions(+), 787 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
index 44f413e..6cb386b 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
@@ -325,11 +325,10 @@ public class BayesianAnalysisFeeder extends GenericMailet {
}
private void clearAllHeaders(MimeMessage message) throws javax.mail.MessagingException {
- @SuppressWarnings("rawtypes")
- Enumeration headers = message.getAllHeaders();
+ Enumeration<Header> headers = message.getAllHeaders();
while (headers.hasMoreElements()) {
- Header header = (Header) headers.nextElement();
+ Header header = headers.nextElement();
try {
message.removeHeader(header.getName());
} catch (javax.mail.MessagingException me) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index 4676ff5..ab83934 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -488,10 +488,9 @@ public abstract class AbstractSign extends GenericMailet {
MimeMessage newMessage = new MimeMessage(Session.getDefaultInstance(System.getProperties(),
null));
- @SuppressWarnings("unchecked")
Enumeration<String> headerEnum = originalMessage.getAllHeaderLines();
while (headerEnum.hasMoreElements()) {
- newMessage.addHeaderLine((String) headerEnum.nextElement());
+ newMessage.addHeaderLine(headerEnum.nextElement());
}
newMessage.setSender(new InternetAddress(getKeyHolder().getSignerAddress(), getSignerName()));
@@ -669,11 +668,10 @@ public abstract class AbstractSign extends GenericMailet {
* @return The string containing the headers.
*/
protected final String getMessageHeaders(MimeMessage message) throws MessagingException {
- @SuppressWarnings("unchecked")
Enumeration<String> heads = message.getAllHeaderLines();
StringBuilder headBuffer = new StringBuilder(1024);
while (heads.hasMoreElements()) {
- headBuffer.append(heads.nextElement().toString()).append("\r\n");
+ headBuffer.append(heads.nextElement()).append("\r\n");
}
return headBuffer.toString();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index 8f2e209..c24e6ac 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -25,7 +25,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
-import java.util.Enumeration;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@@ -111,7 +110,7 @@ public class LogMessage extends GenericMailet {
private void logHeaders(MimeMessage message) throws MessagingException {
if (headers && logger.isInfoEnabled()) {
logger.info("\n");
- for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
+ for (String header : Collections.list(message.getAllHeaderLines())) {
logger.info(header + "\n");
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
index bdd5518..288e20e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/utils/MimeMessageUtils.java
@@ -21,6 +21,7 @@ package org.apache.james.transport.mailets.utils;
import java.util.Enumeration;
import java.util.List;
import java.util.Optional;
+
import javax.mail.Header;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@@ -77,7 +78,6 @@ public class MimeMessageUtils {
* headers
*/
public String getMessageHeaders() throws MessagingException {
- @SuppressWarnings("unchecked")
Enumeration<String> heads = message.getAllHeaderLines();
StringBuilder headBuffer = new StringBuilder(1024);
while (heads.hasMoreElements()) {
@@ -88,10 +88,9 @@ public class MimeMessageUtils {
public List<Header> toHeaderList() throws MessagingException {
ImmutableList.Builder<Header> headers = ImmutableList.builder();
- @SuppressWarnings("unchecked")
Enumeration<Header> allHeaders = message.getAllHeaders();
- for (Enumeration<Header> e = allHeaders; e.hasMoreElements();) {
- headers.add(e.nextElement());
+ while (allHeaders.hasMoreElements()) {
+ headers.add(allHeaders.nextElement());
}
return headers.build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
index 1ee931d..9bbade4 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/RelayLimit.java
@@ -49,7 +49,7 @@ public class RelayLimit extends GenericMatcher {
public Collection<MailAddress> match(Mail mail) throws javax.mail.MessagingException {
MimeMessage mm = mail.getMessage();
int count = 0;
- for (@SuppressWarnings("unchecked") Enumeration<Header> e = mm.getAllHeaders(); e.hasMoreElements();) {
+ for (Enumeration<Header> e = mm.getAllHeaders(); e.hasMoreElements();) {
Header hdr = e.nextElement();
if (hdr.getName().equals(RFC2822Headers.RECEIVED)) {
count++;
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
index 14588f7..9949b48 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
@@ -51,6 +51,7 @@ import com.google.common.collect.Sets;
@RunWith(Parameterized.class)
public class AddFooterTest {
+ private static final String MY_FOOTER = "my footer";
@Rule public ExpectedException exception = ExpectedException.none();
private final String javaCharset;
@@ -94,7 +95,7 @@ public class AddFooterTest {
public void shouldAddFooterWhenQuotedPrintableTextPlainMessage() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -107,20 +108,19 @@ public class AddFooterTest {
"Test=E0 and one =A4",
"");
- String expectedFooter = "------ my footer =E0/=A4 ------";
+ String expectedFooter = "------ " + MY_FOOTER + " =E0/=A4 ------";
Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
mailet.service(mail);
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(quotedPrintableTextPlainMessage + expectedFooter);
-
+ assertThat(MailUtil.toString(mail, javaCharset)).endsWith(expectedFooter);
}
@Test
public void shouldEnsureCarriageReturnWhenAddFooterWithTextPlainMessage() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -132,28 +132,20 @@ public class AddFooterTest {
"",
"Test=E0 and one =A4");
- String expected = Joiner.on("\r\n").join(
- "Subject: test",
- "Content-Type: text/plain; charset=ISO-8859-15",
- "MIME-Version: 1.0",
- "Content-Transfer-Encoding: quoted-printable",
- "",
- "Test=E0 and one =A4",
- "------ my footer =E0/=A4 ------");
+ String expectedFooter = "------ " + MY_FOOTER + " =E0/=A4 ------";
Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
mailet.service(mail);
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
-
+ assertThat(MailUtil.toString(mail, javaCharset)).endsWith("\r\n" + expectedFooter);
}
@Test
public void shouldNotAddFooterWhenUnsupportedEncoding() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -169,14 +161,14 @@ public class AddFooterTest {
Mail mail = FakeMail.fromMime(quotedPrintableTextPlainMessage, javaCharset, javaMailCharset);
mailet.service(mail);
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(quotedPrintableTextPlainMessage);
+ assertThat(MailUtil.toString(mail, javaCharset)).doesNotContain(MY_FOOTER);
}
@Test
public void shouldNotAddFooterWhenUnsupportedTextContentType() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -203,7 +195,7 @@ public class AddFooterTest {
public void shouldNotAddFooterWhenNestedUnsupportedMultipart() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -239,7 +231,7 @@ public class AddFooterTest {
public void shouldAddFooterWhenMultipartRelatedHtmlMessage() throws MessagingException, IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -279,12 +271,12 @@ public class AddFooterTest {
"--------------050206010102010306090507--",
"");
- String expectedFooter = "<br />------ my footer =E0/=A4 ------";
+ String expectedFooter = "<br />------ " + MY_FOOTER + " =E0/=A4 ------";
Mail mail = FakeMail.fromMime(htmlMultipartRelatedMessagePart1 + htmlMultipartRelatedMessagePart2, javaCharset, javaMailCharset);
mailet.service(mail);
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(htmlMultipartRelatedMessagePart1 + expectedFooter + htmlMultipartRelatedMessagePart2);
+ assertThat(MailUtil.toString(mail, javaCharset)).contains(expectedFooter);
}
@Test
@@ -292,7 +284,7 @@ public class AddFooterTest {
IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -320,31 +312,8 @@ public class AddFooterTest {
Mail mail = FakeMail.fromMime(multipartAlternativeMessage, javaCharset, javaMailCharset);
mailet.service(mail);
-
- String expected = Joiner.on("\r\n").join(
- "Subject: test",
- "Content-Type: multipart/alternative;",
- " boundary=\"--==--\"",
- "MIME-Version: 1.0",
- "",
- "----==--",
- "Content-Type: text/plain;",
- " charset=\"ISO-8859-15\"",
- "Content-Transfer-Encoding: quoted-printable",
- "",
- "Test=E0 and @=80",
- "------ my footer =E0/=A4 ------",
- "----==--",
- "Content-Type: text/html;",
- " charset=\"CP1252\"",
- "Content-Transfer-Encoding: quoted-printable",
- "",
- "<html><body>test =80 ss<br />------ my footer =E0/=80 ------</body></html>",
- "----==----",
- ""
- );
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+ assertThat(MailUtil.toString(mail, javaCharset)).matches("(.|\n|\r)*" + MY_FOOTER + "(.|\n|\r)*" + MY_FOOTER + "(.|\n|\r)*");
}
@Test
@@ -352,7 +321,7 @@ public class AddFooterTest {
IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -370,18 +339,8 @@ public class AddFooterTest {
Mail mail = FakeMail.fromMime(htmlMessage, javaCharset, javaMailCharset);
mailet.service(mail);
- String expected = Joiner.on("\r\n").join(
- "Subject: test",
- "MIME-Version: 1.0",
- "Content-Type: text/html;",
- " charset=\"CP1252\"",
- "Content-Transfer-Encoding: quoted-printable",
- "",
- "<html><body>test =80 ss<br />------ my footer =E0/=80 ------</bOdY></html>",
- ""
- );
-
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+ String htmlContent = "<html><body>test =80 ss<br />------ " + MY_FOOTER + " =E0/=80 ------</bOdY></html>";
+ assertThat(MailUtil.toString(mail, javaCharset)).contains(htmlContent);
}
@Test
@@ -389,7 +348,7 @@ public class AddFooterTest {
IOException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
@@ -407,18 +366,9 @@ public class AddFooterTest {
Mail mail = FakeMail.fromMime(htmlMessage, javaCharset, javaMailCharset);
mailet.service(mail);
- String expected = Joiner.on("\r\n").join(
- "Subject: test",
- "MIME-Version: 1.0",
- "Content-Type: text/html;",
- " charset=\"CP1252\"",
- "Content-Transfer-Encoding: quoted-printable",
- "",
- "<html><body>test =80 ss",
- "<br />------ my footer =E0/=80 ------"
- );
+ String expectedFooter = "<br />------ " + MY_FOOTER + " =E0/=80 ------";
- assertThat(MailUtil.toString(mail, javaCharset)).isEqualTo(expected);
+ assertThat(MailUtil.toString(mail, javaCharset)).endsWith(expectedFooter);
}
@SuppressWarnings("unchecked")
@@ -426,7 +376,7 @@ public class AddFooterTest {
public void shouldThrowMessagingExceptionWhenIOExceptionReadingMessage() throws MessagingException {
FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
.mailetName("Test")
- .setProperty("text", "------ my footer à/€ ------")
+ .setProperty("text", "------ " + MY_FOOTER + " à/€ ------")
.build();
mailet.init(mailetConfig);
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
index 8130c3b..de3f003 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/utils/MimeMessageUtilsTest.java
@@ -159,7 +159,7 @@ public class MimeMessageUtilsTest {
.build())
.toHeaderList())
.extracting("name")
- .containsOnly("Message-Id", "MIME-Version");
+ .contains("Message-Id", "MIME-Version");
}
@Test
@@ -171,6 +171,6 @@ public class MimeMessageUtilsTest {
.build())
.toHeaderList())
.extracting("name")
- .containsOnly("Message-Id", "MIME-Version", headerName);
+ .containsOnly("Message-Id", "MIME-Version", headerName, "Date");
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ebe228a..d91877c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1552,7 +1552,7 @@
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
- <version>1.5.4</version>
+ <version>1.6.0</version>
<exclusions>
<exclusion>
<groupId>javax.activation</groupId>
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
index 9832659..3a8ede4 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageCopyOnWriteProxy.java
@@ -30,6 +30,7 @@ import javax.mail.Address;
import javax.mail.Flags;
import javax.mail.Flags.Flag;
import javax.mail.Folder;
+import javax.mail.Header;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
@@ -284,37 +285,31 @@ public class MimeMessageCopyOnWriteProxy extends MimeMessage implements Disposab
return getWrappedMessage().getHeader(name, delimiter);
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getAllHeaders() throws MessagingException {
+ public Enumeration<Header> getAllHeaders() throws MessagingException {
return getWrappedMessage().getAllHeaders();
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
+ public Enumeration<Header> getMatchingHeaders(String[] names) throws MessagingException {
return getWrappedMessage().getMatchingHeaders(names);
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
+ public Enumeration<Header> getNonMatchingHeaders(String[] names) throws MessagingException {
return getWrappedMessage().getNonMatchingHeaders(names);
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getAllHeaderLines() throws MessagingException {
return getWrappedMessage().getAllHeaderLines();
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
return getWrappedMessage().getMatchingHeaderLines(names);
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
return getWrappedMessage().getNonMatchingHeaderLines(names);
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
index 698ad5d..26be958 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageUtil.java
@@ -181,7 +181,6 @@ public class MimeMessageUtil {
*/
private static void writeHeadersTo(MimeMessage message, OutputStream headerOs, String[] ignoreList) throws MessagingException {
// Write the headers (minus ignored ones)
- @SuppressWarnings("unchecked")
Enumeration<String> headers = message.getNonMatchingHeaderLines(ignoreList);
writeHeadersTo(headers, headerOs);
}
@@ -284,13 +283,13 @@ public class MimeMessageUtil {
// messages each time).
size = message.getSize();
if (size != -1) {
- Enumeration<?> e = message.getAllHeaderLines();
+ Enumeration<String> e = message.getAllHeaderLines();
if (e.hasMoreElements()) {
size += 2;
}
while (e.hasMoreElements()) {
// add 2 bytes for the CRLF
- size += ((String) e.nextElement()).length() + 2;
+ size += e.nextElement().length() + 2;
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
index d61b98e..ba59a60 100644
--- a/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
+++ b/server/container/core/src/main/java/org/apache/james/server/core/MimeMessageWrapper.java
@@ -31,6 +31,7 @@ import java.util.Enumeration;
import java.util.UUID;
import javax.activation.DataHandler;
+import javax.mail.Header;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetHeaders;
@@ -316,7 +317,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
}
myHeaders = headers;
}
- @SuppressWarnings("unchecked")
Enumeration<String> filteredHeaders = myHeaders.getNonMatchingHeaderLines(ignoreList);
IOUtils.copy(new InternetHeadersInputStream(filteredHeaders), headerOs);
IOUtils.copy(in, bodyOs);
@@ -453,34 +453,30 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
return headers.getHeader(name, delimiter);
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getAllHeaders() throws MessagingException {
+ public Enumeration<Header> getAllHeaders() throws MessagingException {
if (headers == null) {
loadHeaders();
}
return headers.getAllHeaders();
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
+ public Enumeration<Header> getMatchingHeaders(String[] names) throws MessagingException {
if (headers == null) {
loadHeaders();
}
return headers.getMatchingHeaders(names);
}
- @SuppressWarnings("unchecked")
@Override
- public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
+ public Enumeration<Header> getNonMatchingHeaders(String[] names) throws MessagingException {
if (headers == null) {
loadHeaders();
}
return headers.getNonMatchingHeaders(names);
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getAllHeaderLines() throws MessagingException {
if (headers == null) {
@@ -489,7 +485,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
return headers.getAllHeaderLines();
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
if (headers == null) {
@@ -498,7 +493,6 @@ public class MimeMessageWrapper extends MimeMessage implements Disposable {
return headers.getMatchingHeaderLines(names);
}
- @SuppressWarnings("unchecked")
@Override
public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
if (headers == null) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
index a7a7cb1..2c73e85 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageTest.java
@@ -47,6 +47,7 @@ public class MimeMessageTest {
protected MimeMessage getSimpleMessage() throws Exception {
MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+ mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
mmCreated.setSubject("test");
mmCreated.setText("test body");
mmCreated.saveChanges();
@@ -56,6 +57,7 @@ public class MimeMessageTest {
protected String getSimpleMessageCleanedSource() {
return "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ "Content-Type: text/plain; charset=us-ascii\r\n"
+ "Content-Transfer-Encoding: 7bit\r\n"
+ "\r\n"
@@ -64,6 +66,7 @@ public class MimeMessageTest {
protected MimeMessage getMessageWithBadReturnPath() throws Exception {
MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
+ mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
mmCreated.setSubject("test");
mmCreated.setHeader(RFC2822Headers.RETURN_PATH, "<my...@example.com>");
mmCreated.setText("test body");
@@ -75,6 +78,7 @@ public class MimeMessageTest {
return "Subject: test\r\n"
+ "Return-Path: <my...@example.com>\r\n"
+ "MIME-Version: 1.0\r\n"
+ + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ "Content-Type: text/plain; charset=us-ascii\r\n"
+ "Content-Transfer-Encoding: 7bit\r\n"
+ "\r\n"
@@ -98,6 +102,7 @@ public class MimeMessageTest {
protected MimeMessage getMultipartMessage() throws Exception {
MimeMessage mmCreated = new MimeMessage(Session.getDefaultInstance(new Properties()));
mmCreated.setSubject("test");
+ mmCreated.addHeader("Date", "Tue, 16 Jan 2018 09:56:01 +0700 (ICT)");
MimeMultipart mm = new MimeMultipart("alternative");
mm.addBodyPart(new MimeBodyPart(new InternetHeaders(new ByteArrayInputStream("X-header: test1\r\nContent-Type: text/plain; charset=Cp1252\r\n"
.getBytes())), "first part òàù".getBytes()));
@@ -109,7 +114,8 @@ public class MimeMessageTest {
}
protected String getMultipartMessageSource() {
- return "Subject: test\r\n"
+ return "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ + "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ "Content-Type: multipart/alternative; \r\n"
+ "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
@@ -132,6 +138,7 @@ public class MimeMessageTest {
protected String getMultipartMessageExpected1() {
return "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ "Content-Type: multipart/alternative; \r\n"
+ "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
+ "\r\n"
@@ -153,6 +160,7 @@ public class MimeMessageTest {
protected String getMultipartMessageExpected2() {
return "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ "Content-Type: multipart/alternative; \r\n"
+ "\tboundary=\"----=_Part_0_XXXXXXXXXXX.XXXXXXXXXXX\"\r\n"
+ "\r\n"
@@ -178,6 +186,7 @@ public class MimeMessageTest {
protected String getMultipartMessageExpected3() {
return "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ + "Date: Tue, 16 Jan 2018 09:56:01 +0700 (ICT)\r\n"
+ "Content-Type: binary/octet-stream\r\n"
+ "Content-Transfer-Encoding: quoted-printable\r\n"
+ "\r\n"
@@ -414,7 +423,6 @@ public class MimeMessageTest {
public void testHeaderOrder() throws Exception {
MimeMessage message = getSimpleMessage();
message.setHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
- @SuppressWarnings("unchecked")
Enumeration<String> h = message.getAllHeaderLines();
assertEquals(h.nextElement(), "Return-Path: <te...@test.de>");
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
----------------------------------------------------------------------
diff --git a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
index 3a1ac42..0385a1b 100644
--- a/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
+++ b/server/container/core/src/test/java/org/apache/james/server/core/MimeMessageWrapperTest.java
@@ -187,14 +187,12 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
public void testReplaceReturnPathOnBadMessage() throws Exception {
MimeMessage message = getMessageWithBadReturnPath();
message.setHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
- @SuppressWarnings("unchecked")
Enumeration<String> e = message.getMatchingHeaderLines(new String[]{"Return-Path"});
assertEquals("Return-Path: <te...@test.de>", e.nextElement());
assertFalse(e.hasMoreElements());
- @SuppressWarnings("unchecked")
Enumeration<String> h = message.getAllHeaderLines();
assertEquals("Return-Path: <te...@test.de>", h.nextElement());
- assertFalse(h.nextElement().toString().startsWith("Return-Path:"));
+ assertFalse(h.nextElement().startsWith("Return-Path:"));
LifecycleUtil.dispose(message);
}
@@ -203,12 +201,10 @@ public class MimeMessageWrapperTest extends MimeMessageFromStreamTest {
MimeMessage message = getMessageWithBadReturnPath();
message.addHeader(RFC2822Headers.RETURN_PATH, "<te...@test.de>");
// test that we have now 2 return-paths
- @SuppressWarnings("unchecked")
Enumeration<String> e = message.getMatchingHeaderLines(new String[]{"Return-Path"});
assertEquals("Return-Path: <te...@test.de>", e.nextElement());
assertEquals("Return-Path: <my...@example.com>", e.nextElement());
// test that return-path is the first line
- @SuppressWarnings("unchecked")
Enumeration<String> h = message.getAllHeaderLines();
assertEquals("Return-Path: <te...@test.de>", h.nextElement());
LifecycleUtil.dispose(message);
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
index 795269d..0447333 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
@@ -329,7 +329,6 @@ public class BayesianAnalysisFeeder extends GenericMailet {
}
private void clearAllHeaders(MimeMessage message) throws javax.mail.MessagingException {
- @SuppressWarnings("unchecked")
Enumeration<Header> headers = message.getAllHeaders();
while (headers.hasMoreElements()) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
index 178ad49..0d082a8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
@@ -186,9 +186,9 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC
public List<String> getHeaderNames() throws SieveMailException {
Set<String> headerNames = new HashSet<>();
try {
- Enumeration<?> allHeaders = getMessage().getAllHeaders();
+ Enumeration<Header> allHeaders = getMessage().getAllHeaders();
while (allHeaders.hasMoreElements()) {
- headerNames.add(((Header) allHeaders.nextElement()).getName());
+ headerNames.add(allHeaders.nextElement().getName());
}
return new ArrayList<>(headerNames);
} catch (MessagingException ex) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
index 3f651aa..7fe9f3a 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
@@ -86,9 +86,9 @@ public class VacationAction implements MailAction {
}
private boolean isMailingList(Mail mail) throws MessagingException {
- Enumeration<?> enumeration = mail.getMessage().getAllHeaderLines();
+ Enumeration<String> enumeration = mail.getMessage().getAllHeaderLines();
while (enumeration.hasMoreElements()) {
- String headerName = (String) enumeration.nextElement();
+ String headerName = enumeration.nextElement();
if (headerName.startsWith("List-")) {
return true;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
index 23df7b2..c998e2c 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
@@ -243,7 +243,6 @@ public class MailMessageAlteringUtils {
}
private void copyRelevantHeaders(MimeMessage originalMessage, MimeMessage newMessage) throws MessagingException {
- @SuppressWarnings("unchecked")
Enumeration<String> headerEnum = originalMessage.getMatchingHeaderLines(
new String[] { RFC2822Headers.DATE, RFC2822Headers.FROM, RFC2822Headers.REPLY_TO, RFC2822Headers.TO,
RFC2822Headers.SUBJECT, RFC2822Headers.RETURN_PATH });
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
index c4d890f..2b798ac 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
@@ -100,14 +100,12 @@ public class InstrumentationMailet implements Mailet {
LOGGER.info("Received: " + message.getReceivedDate());
LOGGER.info("Sent: " + message.getSentDate());
- @SuppressWarnings("unchecked")
Enumeration<String> allHeadersLines = message.getAllHeaderLines();
while (allHeadersLines.hasMoreElements()) {
String header = allHeadersLines.nextElement();
LOGGER.info("Header Line:= " + header);
}
- @SuppressWarnings("unchecked")
Enumeration<Header> allHeadersEnumeration = message.getAllHeaders();
while (allHeadersEnumeration.hasMoreElements()) {
Header header = allHeadersEnumeration.nextElement();
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
index b9ad415..1e33fc1 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
@@ -572,7 +572,6 @@ public class MessageProcessor extends ProcessorAbstract {
MimeMessage messageOut = new MimeMessage(getSession());
// Propogate the headers and subject
- @SuppressWarnings("unchecked")
Enumeration<String> headersInEnum = getMessageIn().getAllHeaderLines();
while (headersInEnum.hasMoreElements()) {
messageOut.addHeaderLine(headersInEnum.nextElement());
@@ -875,7 +874,6 @@ public class MessageProcessor extends ProcessorAbstract {
* @return boolean
*/
protected boolean isBouncing() throws MessagingException {
- @SuppressWarnings("unchecked")
Enumeration<String> enumeration = getMessageIn().getMatchingHeaderLines(new String[]{"X-fetched-from"});
int count = 0;
while (enumeration.hasMoreElements()) {
@@ -940,7 +938,6 @@ public class MessageProcessor extends ProcessorAbstract {
}
} else {
try {
- @SuppressWarnings("unchecked")
Enumeration<String> enumeration = msg.getMatchingHeaderLines(new String[]{"Received"});
while (enumeration.hasMoreElements()) {
String received = enumeration.nextElement();
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
index d474568..7e9b065 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/mailet/TextCalendarBodyToAttachment.java
@@ -20,7 +20,6 @@
package org.apache.james.jmap.mailet;
import java.util.Collections;
-import java.util.Enumeration;
import java.util.List;
import javax.mail.Header;
@@ -83,9 +82,8 @@ public class TextCalendarBodyToAttachment extends GenericMailet {
mimeMessage.saveChanges();
}
- @SuppressWarnings("unchecked")
private List<Header> getContentHeadersFromMimeMessage(MimeMessage mimeMessage) throws MessagingException {
- return Collections.list((Enumeration<Header>) mimeMessage.getAllHeaders())
+ return Collections.list(mimeMessage.getAllHeaders())
.stream()
.filter(header -> header.getName().startsWith(CONTENT_HEADER_PREFIX))
.collect(Guavate.toImmutableList());
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
index cc26723..6207043 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java
@@ -27,12 +27,12 @@ import java.util.HashMap;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
+import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.protocols.smtp.SMTPSession;
import org.apache.james.protocols.smtp.hook.HookResult;
import org.apache.james.protocols.smtp.hook.HookReturnCode;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.apache.james.smtpserver.fastfail.SpamAssassinHandler;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
import org.apache.james.smtpserver.mock.mailet.MockMail;
import org.apache.james.util.scanner.SpamAssassinInvoker;
import org.apache.james.utils.MockSpamd;
@@ -103,11 +103,9 @@ public class SpamAssassinHandlerTest {
}
public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
- message.setText(text);
- message.saveChanges();
-
- return message;
+ return MimeMessageBuilder.mimeMessageBuilder()
+ .setText(text)
+ .build();
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
index 7d138f9..dca95e4 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/URIRBLHandlerTest.java
@@ -28,13 +28,10 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
-import javax.mail.BodyPart;
import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
+import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.api.mock.MockDNSService;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -42,7 +39,6 @@ import org.apache.james.protocols.smtp.hook.HookResult;
import org.apache.james.protocols.smtp.hook.HookReturnCode;
import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession;
import org.apache.james.smtpserver.fastfail.URIRBLHandler;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
import org.apache.james.smtpserver.mock.mailet.MockMail;
import org.apache.mailet.Mail;
import org.junit.Test;
@@ -111,28 +107,17 @@ public class URIRBLHandlerTest {
}
public MimeMessage setupMockedMimeMessage(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
- message.setText(text);
- message.saveChanges();
-
- return message;
+ return MimeMessageBuilder.mimeMessageBuilder()
+ .setText(text)
+ .build();
}
public MimeMessage setupMockedMimeMessageMP(String text) throws MessagingException {
- MimeMessage message = new MimeMessage(new MockMimeMessage());
-
- // Create the message part
- BodyPart messageBodyPart = new MimeBodyPart();
-
- // Fill the message
- messageBodyPart.setText(text);
-
- Multipart multipart = new MimeMultipart();
- multipart.addBodyPart(messageBodyPart);
- message.setContent(multipart);
- message.saveChanges();
-
- return message;
+ return MimeMessageBuilder.mimeMessageBuilder()
+ .setMultipartWithBodyParts(
+ MimeMessageBuilder.bodyPartBuilder()
+ .data(text))
+ .build();
}
/**
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
index 2569678..e9f95ca 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/Util.java
@@ -22,12 +22,11 @@ import java.util.Arrays;
import java.util.Random;
import javax.mail.MessagingException;
-import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.ParseException;
import org.apache.james.core.MailAddress;
-import org.apache.james.smtpserver.mock.MockMimeMessage;
+import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.smtpserver.mock.mailet.MockMail;
/**
@@ -46,38 +45,15 @@ public class Util {
return mockedMail;
}
- public static MockMimeMessage createMimeMessage() throws MessagingException {
- return createMimeMessage(null, null);
- }
-
- public static MockMimeMessage createMimeMessageWithSubject(String subject) throws MessagingException {
- return createMimeMessage(null, null, subject, 0);
- }
-
- public static MockMimeMessage createMimeMessage(String subject, int number) throws MessagingException {
- return createMimeMessage(null, null, subject, number);
- }
-
- public static MockMimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
- return createMimeMessage(headerName, headerValue, "testmail", 0);
- }
-
- public static MockMimeMessage createMimeMessage(String headerName, String headerValue, String subject, int number)
- throws MessagingException {
+ public static MimeMessage createMimeMessage(String headerName, String headerValue) throws MessagingException {
String sender = "test@james.apache.org";
String rcpt = "test2@james.apache.org";
-
- MockMimeMessage mockedMimeMessage = new MockMimeMessage(number);
- mockedMimeMessage.setFrom(new InternetAddress(sender));
- mockedMimeMessage.setRecipients(MimeMessage.RecipientType.TO, rcpt);
- if (headerName != null) {
- mockedMimeMessage.setHeader(headerName, headerValue);
- }
- if (subject != null) {
- mockedMimeMessage.setSubject(subject);
- }
- mockedMimeMessage.setText("testtext");
- mockedMimeMessage.saveChanges();
- return mockedMimeMessage;
+ return MimeMessageBuilder.mimeMessageBuilder()
+ .addHeader(headerName, headerValue)
+ .setSubject("testmail")
+ .setText("testtext")
+ .addToRecipient(rcpt)
+ .addFrom(sender)
+ .build();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9b08643/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
deleted file mode 100644
index fe68393..0000000
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/MockMimeMessage.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-package org.apache.james.smtpserver.mock;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.activation.DataHandler;
-import javax.mail.Address;
-import javax.mail.Flags;
-import javax.mail.Folder;
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.Multipart;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.InternetHeaders;
-import javax.mail.internet.MimeMessage;
-import javax.mail.search.SearchTerm;
-
-import com.github.steveash.guavate.Guavate;
-
-public class MockMimeMessage extends MimeMessage {
-
- private final List<Address> fromAddresses = new ArrayList<>();
- private Address senderAddress;
- private final List<Address> toRecepients = new ArrayList<>();
- private final List<Address> ccRecepients = new ArrayList<>();
- private final List<Address> bccRecepients = new ArrayList<>();
- private final List<Address> replyToAddresses = new ArrayList<>();
- private String subject;
- private int messageNumber;
- private boolean isExpunged;
- private Object content;
- private Date sentDate;
- private String[] contentLanguage;
- private String fileName;
- private DataHandler dataHandler;
- private final HashMap<String, String> contentHeaders = new HashMap<>();
- private final Flags setFlags = new Flags();
- private boolean doMatch;
-
- public MockMimeMessage() {
- super((Session) null);
- }
-
- public MockMimeMessage(int messageNumber) {
- super((Session) null);
- this.messageNumber = messageNumber;
- }
-
- public MockMimeMessage(MimeMessage mimeMessage) throws MessagingException {
- super(mimeMessage); // trivial implementation
- }
-
- @Override
- public Address[] getFrom() throws MessagingException {
- return fromAddresses.toArray(new Address[0]);
- }
-
- @Override
- public void setFrom(Address address) throws MessagingException {
- fromAddresses.clear();
- fromAddresses.add(address);
- }
-
- @Override
- public void setFrom() throws MessagingException {
- fromAddresses.clear();
- fromAddresses.add(InternetAddress.getLocalAddress(null));
- }
-
- @Override
- public void addFrom(Address[] addresses) throws MessagingException {
- fromAddresses.addAll(Arrays.asList(addresses));
- }
-
- @Override
- public Address getSender() throws MessagingException {
- return senderAddress;
- }
-
- @Override
- public void setSender(Address address) throws MessagingException {
- senderAddress = address;
- }
-
- @Override
- public Address[] getRecipients(Message.RecipientType recipientType) throws MessagingException {
- List<Address> recipientsList = getRecipientsList(recipientType);
- return recipientsList.toArray(new Address[0]);
- }
-
- private List<Address> getRecipientsList(Message.RecipientType recipientType) {
- if (Message.RecipientType.TO.equals(recipientType)) {
- return toRecepients;
- }
- if (Message.RecipientType.CC.equals(recipientType)) {
- return ccRecepients;
- }
- if (Message.RecipientType.BCC.equals(recipientType)) {
- return bccRecepients;
- }
- return null;
- }
-
- @Override
- public Address[] getAllRecipients() throws MessagingException {
- List<Address> allRecipients = new ArrayList<>();
- allRecipients.addAll(toRecepients);
- allRecipients.addAll(ccRecepients);
- allRecipients.addAll(bccRecepients);
- return allRecipients.toArray(new Address[0]);
- }
-
- @Override
- public void setRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException {
- getRecipientsList(recipientType).addAll(Arrays.asList(addresses));
- }
-
- @Override
- public void setRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException {
- setRecipients(recipientType, InternetAddress.parse(recipient));
- }
-
- @Override
- public void addRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException {
- getRecipientsList(recipientType).addAll(Arrays.asList(addresses));
- }
-
- @Override
- public void addRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException {
- addRecipients(recipientType, InternetAddress.parse(recipient));
- }
-
- @Override
- public Address[] getReplyTo() throws MessagingException {
- return replyToAddresses.toArray(new Address[0]);
- }
-
- @Override
- public void setReplyTo(Address[] addresses) throws MessagingException {
- replyToAddresses.addAll(Arrays.asList(addresses));
- }
-
- @Override
- public String getSubject() throws MessagingException {
- return subject;
- }
-
- @Override
- public void setSubject(String subject) throws MessagingException {
- this.subject = subject;
- }
-
- @Override
- public void setSubject(String subject, String charset) throws MessagingException {
- if (subject == null) {
- this.subject = null;
- return;
- }
- try {
- this.subject = new String(subject.getBytes(charset));
- } catch (UnsupportedEncodingException e) {
- throw new MessagingException("setting subject failed", e);
- }
- }
-
- @Override
- public Date getSentDate() throws MessagingException {
- return sentDate;
- }
-
- @Override
- public void setSentDate(Date date) throws MessagingException {
- sentDate = date;
- }
-
- @Override
- public Date getReceivedDate() throws MessagingException {
- return null; // trivial implementation
- }
-
- @Override
- public int getSize() throws MessagingException {
- return -1; // trivial implementation
- }
-
- @Override
- public int getLineCount() throws MessagingException {
- return -1; // trivial implementation
- }
-
- @Override
- public String getContentType() throws MessagingException {
- return getHeader("Content-Type", null);
- }
-
- @Override
- public boolean isMimeType(String mimeType) throws MessagingException {
- return mimeType.startsWith(getContentType());
- }
-
- @Override
- public String getDisposition() throws MessagingException {
- return getHeader("Content-Disposition", null);
- }
-
- @Override
- public void setDisposition(String disposition) throws MessagingException {
- setHeader("Content-Disposition", disposition);
- }
-
- @Override
- public String getEncoding() throws MessagingException {
- return getHeader("Content-Transfer-Encoding", null);
- }
-
- @Override
- public String getContentID() throws MessagingException {
- return getHeader("Content-ID", null);
- }
-
- @Override
- public void setContentID(String contentID) throws MessagingException {
- setHeader("Content-ID", contentID);
- }
-
- @Override
- public String getContentMD5() throws MessagingException {
- return getHeader("Content-MD5", null);
- }
-
- @Override
- public void setContentMD5(String value) throws MessagingException {
- setHeader("Content-MD5", value);
- }
-
- @Override
- public String getDescription() throws MessagingException {
- return getHeader("Content-Description", null);
- }
-
- @Override
- public void setDescription(String description) throws MessagingException {
- setHeader("Content-Description", description);
- }
-
- @Override
- public void setDescription(String description, String charset) throws MessagingException {
- try {
- setDescription(new String(description.getBytes(charset)));
- } catch (UnsupportedEncodingException e) {
- throw new MessagingException("setting description failed", e);
- }
- }
-
- @Override
- public String[] getContentLanguage() throws MessagingException {
- return contentLanguage;
- }
-
- @Override
- public void setContentLanguage(String[] contentLanguage) throws MessagingException {
- this.contentLanguage = contentLanguage;
- }
-
- @Override
- public String getMessageID() throws MessagingException {
- return "ID-" + messageNumber; // trivial implementation
- }
-
- @Override
- public String getFileName() throws MessagingException {
- return fileName;
- }
-
- @Override
- public void setFileName(String fileName) throws MessagingException {
- this.fileName = fileName;
- }
-
- @Override
- public InputStream getInputStream() throws IOException, MessagingException {
- return null; // trivial implementation
- }
-
- @Override
- protected InputStream getContentStream() throws MessagingException {
- return null; // trivial implementation
- }
-
- @Override
- public InputStream getRawInputStream() throws MessagingException {
- if (content instanceof String) {
- return new ByteArrayInputStream(content.toString().getBytes());
- }
- throw new UnsupportedOperationException("Unimplementated method");
- }
-
- @Override
- public synchronized DataHandler getDataHandler() throws MessagingException {
- return dataHandler;
- }
-
- @Override
- public synchronized void setDataHandler(DataHandler dataHandler) throws MessagingException {
- this.dataHandler = dataHandler;
- }
-
- @Override
- public Object getContent() throws IOException, MessagingException {
- return content;
- }
-
- @Override
- public void setContent(Object object, String mimeType) throws MessagingException {
- content = object; // trivial implementation
- }
-
- @Override
- public void setText(String string) throws MessagingException {
- setContent(string, "text/plain");
- }
-
- @Override
- public void setText(String string, String charset) throws MessagingException {
- try {
- setContent(new String(string.getBytes(charset)), "text/plain");
- } catch (UnsupportedEncodingException e) {
- throw new MessagingException("setting text content failed", e);
- }
- }
-
- @Override
- public void setContent(Multipart multipart) throws MessagingException {
- content = multipart;
- }
-
- @Override
- public Message reply(boolean b) throws MessagingException {
- return new MockMimeMessage(this); // trivial implementation
- }
-
- @Override
- public void writeTo(OutputStream outputStream) throws IOException, MessagingException {
- // trivial implementation
- }
-
- @Override
- public void writeTo(OutputStream outputStream, String[] strings) throws IOException, MessagingException {
- // trivial implementation
- }
-
- @Override
- public String[] getHeader(String name) throws MessagingException {
- String value = (String) contentHeaders.get(name);
- if (value == null) {
- return null;
- }
- return new String[]{value};
- }
-
- @Override
- public String getHeader(String name, String delimiter) throws MessagingException {
- String[] header = getHeader(name);
- if (header == null || header.length == 0) {
- return null;
- }
- return header[0];
- }
-
- @Override
- public void setHeader(String name, String value) throws MessagingException {
- addHeader(name, value);
- }
-
- @Override
- public void addHeader(String name, String value) throws MessagingException {
- contentHeaders.put(name, value);
- }
-
- @Override
- public void removeHeader(String name) throws MessagingException {
- contentHeaders.remove(name);
- }
-
- @Override
- public Enumeration<String> getAllHeaders() throws MessagingException {
- return Collections.enumeration(contentHeaders.values());
- }
-
- @Override
- public Enumeration<String> getMatchingHeaders(String[] names) throws MessagingException {
- ArrayList<String> matchingHeaders = new ArrayList<>();
- for (String name : names) {
- String value = getHeader(name, null);
- if (value == null) {
- continue;
- }
- matchingHeaders.add(value);
- }
- return Collections.enumeration(matchingHeaders);
- }
-
- @Override
- public Enumeration<String> getNonMatchingHeaders(String[] names) throws MessagingException {
- List<String> existingHeaders = Arrays.asList(names);
-
- ArrayList<String> nonMatchingHeaders = new ArrayList<>();
-
- for (String name : contentHeaders.keySet()) {
- if (existingHeaders.contains(name)) {
- continue;
- }
- String value = getHeader(name, null);
- if (value == null) {
- continue;
- }
- nonMatchingHeaders.add(value);
- }
- return Collections.enumeration(nonMatchingHeaders);
- }
-
- @Override
- public void addHeaderLine(String headerLine) throws MessagingException {
- int separatorIndex = headerLine.indexOf(":");
- if (separatorIndex < 0) {
- throw new MessagingException("header line does not conform to standard");
- }
-
- addHeader(headerLine.substring(0, separatorIndex), headerLine.substring(separatorIndex, headerLine.length()));
- }
-
- @Override
- public Enumeration<String> getAllHeaderLines() throws MessagingException {
- return Collections.enumeration(getHeadersAsStrings(contentHeaders));
- }
-
- private List<String> getHeadersAsStrings(HashMap<String, String> contentHeaders) {
- return contentHeaders.entrySet()
- .stream()
- .map(entry -> entry.getKey() + ":" + entry.getValue())
- .collect(Guavate.toImmutableList());
- }
-
- @Override
- public Enumeration<String> getMatchingHeaderLines(String[] names) throws MessagingException {
- ArrayList<String> matchingHeaders = new ArrayList<>();
- for (String name : names) {
- String value = getHeader(name, null);
- if (value == null) {
- continue;
- }
- matchingHeaders.add(name + ":" + value);
- }
- return Collections.enumeration(matchingHeaders);
- }
-
- @Override
- public Enumeration<String> getNonMatchingHeaderLines(String[] names) throws MessagingException {
- List<String> existingHeaders = names != null ? Arrays.asList(names) : null;
-
- ArrayList<String> nonMatchingHeaders = new ArrayList<>();
-
- for (String name : contentHeaders.keySet()) {
- if (existingHeaders != null && existingHeaders.contains(name)) {
- continue;
- }
- String value = getHeader(name, null);
- if (value == null) {
- continue;
- }
- nonMatchingHeaders.add(name + ":" + value);
- }
- return Collections.enumeration(nonMatchingHeaders);
- }
-
- @Override
- public synchronized Flags getFlags() throws MessagingException {
- return new Flags(setFlags);
- }
-
- @Override
- public synchronized boolean isSet(Flags.Flag flag) throws MessagingException {
- return setFlags.contains(flag);
- }
-
- @Override
- public synchronized void setFlags(Flags flags, boolean set) throws MessagingException {
- if (set) {
- setFlags.add(flags);
- } else {
- setFlags.remove(flags);
- }
- }
-
- @Override
- public void saveChanges() throws MessagingException {
- // trivial implementation
- }
-
- @Override
- protected void updateHeaders() throws MessagingException {
- // trivial implementation
- }
-
- @Override
- protected InternetHeaders createInternetHeaders(InputStream inputStream) throws MessagingException {
- return new InternetHeaders();
- }
-
- @Override
- public void setRecipient(Message.RecipientType recipientType, Address address) throws MessagingException {
- setRecipients(recipientType, new Address[]{address});
- }
-
- @Override
- public void addRecipient(Message.RecipientType recipientType, Address address) throws MessagingException {
- setRecipients(recipientType, new Address[]{address});
- }
-
- @Override
- public void setFlag(Flags.Flag flag, boolean set) throws MessagingException {
- if (set) {
- setFlags.add(flag);
- } else {
- setFlags.remove(flag);
- }
- }
-
- @Override
- public int getMessageNumber() {
- return messageNumber;
- }
-
- @Override
- protected void setMessageNumber(int i) {
- messageNumber = i;
- }
-
- @Override
- public Folder getFolder() {
- return null;
- }
-
- @Override
- public boolean isExpunged() {
- return isExpunged;
- }
-
- @Override
- protected void setExpunged(boolean b) {
- isExpunged = b;
- }
-
- public void setShouldMatch(boolean doMatch) {
- this.doMatch = doMatch;
- }
-
- @Override
- public boolean match(SearchTerm searchTerm) throws MessagingException {
- return doMatch;
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org