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 2019/11/28 02:12:33 UTC
[james-project] 16/23: JAMES-2989 POJOify mailbox-api headers
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 6c9350f78b69201264a1b70c2d4e0313756e76d8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Nov 25 13:17:50 2019 +0700
JAMES-2989 POJOify mailbox-api headers
---
.../org/apache/james/mailbox/model/Header.java} | 23 ++++++---
.../org/apache/james/mailbox/model/Headers.java | 1 -
.../apache/james/mailbox/model/MessageResult.java | 20 --------
.../james/mailbox/store/LazyMimeDescriptor.java | 2 +-
.../james/mailbox/store/MessageResultImpl.java | 1 +
.../james/mailbox/store/MimeDescriptorImpl.java | 22 ++++-----
.../apache/james/mailbox/store/ResultUtils.java | 13 +++---
.../mailbox/store/StoreMessageResultIterator.java | 1 +
.../mailbox/store/search/MessageSearches.java | 2 +-
.../comparator/AbstractHeaderComparator.java | 2 +-
.../mailbox/store/streaming/FullByteContent.java | 5 +-
.../store/streaming/PartContentBuilder.java | 16 +++----
.../PartContentBuilderComplexMultipartTest.java | 4 +-
...PartContentBuilderMultipartAlternativeTest.java | 4 +-
.../imap/processor/fetch/EnvelopeBuilder.java | 6 +--
.../imap/processor/fetch/FetchResponseBuilder.java | 25 +++++-----
.../imap/processor/fetch/HeaderBodyElement.java | 6 +--
.../imap/processor/fetch/MessageResultUtils.java | 46 +++++++++---------
.../imap/processor/fetch/MimeBodyElement.java | 12 ++---
.../fetch/MailboxMessageResultUtilsTest.java | 54 ++++------------------
.../james/jmap/draft/methods/ReferenceUpdater.java | 2 +-
21 files changed, 109 insertions(+), 158 deletions(-)
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultHeader.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Header.java
similarity index 84%
rename from mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultHeader.java
rename to mailbox/api/src/main/java/org/apache/james/mailbox/model/Header.java
index f1424f2..71b2e4c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultHeader.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Header.java
@@ -20,32 +20,41 @@
/**
*
*/
-package org.apache.james.mailbox.store;
+package org.apache.james.mailbox.model;
import static java.nio.charset.StandardCharsets.US_ASCII;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
-import org.apache.james.mailbox.model.MessageResult;
-
-public final class ResultHeader implements MessageResult.Header {
+/**
+ * A header.
+ */
+public final class Header implements Content {
private final String name;
private final String value;
private final long size;
- public ResultHeader(String name, String value) {
+ public Header(String name, String value) {
this.name = name;
this.value = value;
this.size = name.length() + value.length() + 2;
}
- @Override
+ /**
+ * Gets the name of this header.
+ *
+ * @return name of this header
+ */
public String getName() {
return name;
}
- @Override
+ /**
+ * Gets the (unparsed) value of this header.
+ *
+ * @return value of this header
+ */
public String getValue() {
return value;
}
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Headers.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Headers.java
index 52b959b..16e715d 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Headers.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Headers.java
@@ -22,7 +22,6 @@ package org.apache.james.mailbox.model;
import java.util.Iterator;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MessageResult.Header;
public interface Headers extends Content {
/**
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
index c85df56..82894d6 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
@@ -101,26 +101,6 @@ public interface MessageResult extends Comparable<MessageResult> {
Iterator<Header> iterateMimeHeaders(MimePath path) throws MailboxException;
/**
- * A header.
- */
- interface Header extends Content {
-
- /**
- * Gets the name of this header.
- *
- * @return name of this header
- */
- String getName();
-
- /**
- * Gets the (unparsed) value of this header.
- *
- * @return value of this header
- */
- String getValue();
- }
-
- /**
* Gets the full message including headers and body. The message data should
* have normalised line endings (CRLF).
*
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/LazyMimeDescriptor.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/LazyMimeDescriptor.java
index 25d6a37..aad4f90 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/LazyMimeDescriptor.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/LazyMimeDescriptor.java
@@ -27,8 +27,8 @@ import java.util.List;
import java.util.Map;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResult.Header;
import org.apache.james.mailbox.model.MimeDescriptor;
import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
index e3f5e05..569c55e 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.ModSeq;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Content;
import org.apache.james.mailbox.model.FetchGroup;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.Headers;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageAttachment;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
index 7f4baae..32475b9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
@@ -32,7 +32,7 @@ import java.util.Map;
import java.util.TreeMap;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.MimeDescriptor;
import org.apache.james.mailbox.store.streaming.CountingInputStream;
import org.apache.james.mime4j.MimeException;
@@ -60,12 +60,12 @@ public class MimeDescriptorImpl implements MimeDescriptor {
private static MimeDescriptorImpl createDescriptor(MimeTokenStream parser) throws IOException, MimeException {
EntityState next = parser.next();
- final Collection<MessageResult.Header> headers = new ArrayList<>();
+ final Collection<Header> headers = new ArrayList<>();
while (next != EntityState.T_BODY
&& next != EntityState.T_END_OF_STREAM
&& next != EntityState.T_START_MULTIPART) {
if (next == EntityState.T_FIELD) {
- headers.add(new ResultHeader(parser.getField().getName(), parser
+ headers.add(new Header(parser.getField().getName(), parser
.getField().getBody().trim()));
}
next = parser.next();
@@ -87,7 +87,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
return mimeDescriptorImpl;
}
- private static MimeDescriptorImpl compositePartDescriptor(MimeTokenStream parser, Collection<MessageResult.Header> headers)
+ private static MimeDescriptorImpl compositePartDescriptor(MimeTokenStream parser, Collection<Header> headers)
throws IOException, MimeException {
MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser
.getBodyDescriptor();
@@ -104,7 +104,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
return mimeDescriptor;
}
- private static MimeDescriptorImpl simplePartDescriptor(MimeTokenStream parser, Collection<MessageResult.Header> headers)
+ private static MimeDescriptorImpl simplePartDescriptor(MimeTokenStream parser, Collection<Header> headers)
throws IOException, MimeException {
MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) parser
.getBodyDescriptor();
@@ -137,7 +137,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
}
private static MimeDescriptorImpl createDescriptor(long bodyOctets, long lines, MaximalBodyDescriptor descriptor,
- MimeDescriptor embeddedMessage, Collection<MessageResult.Header> headers) {
+ MimeDescriptor embeddedMessage, Collection<Header> headers) {
final String contentDescription = descriptor.getContentDescription();
final String contentId = descriptor.getContentId();
@@ -180,7 +180,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
private final String type;
private final String transferEncoding;
private final List<String> languages;
- private final Collection<MessageResult.Header> headers;
+ private final Collection<Header> headers;
private final Map<String, String> contentTypeParameters;
private final String disposition;
private final Map<String, String> dispositionParams;
@@ -192,7 +192,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
private MimeDescriptorImpl(long bodyOctets,
String contentDescription, String contentId,
long lines, String subType, String type,
- String transferEncoding, Collection<MessageResult.Header> headers,
+ String transferEncoding, Collection<Header> headers,
Map<String, String> contentTypeParameters, List<String> languages,
String disposition, Map<String, String> dispositionParams,
MimeDescriptor embeddedMessage, Collection<MimeDescriptor> parts,
@@ -262,7 +262,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
}
@Override
- public Iterator<MessageResult.Header> headers() {
+ public Iterator<Header> headers() {
return headers.iterator();
}
@@ -303,7 +303,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
@Override
public InputStream getInputStream() {
StringBuilder sb = new StringBuilder();
- for (MessageResult.Header header : headers) {
+ for (Header header : headers) {
sb.append(header.getName()).append(": ").append(header.getValue()).append("\r\n");
}
sb.append("\r\n");
@@ -313,7 +313,7 @@ public class MimeDescriptorImpl implements MimeDescriptor {
@Override
public long size() throws MailboxException {
long result = 0;
- for (MessageResult.Header header : headers) {
+ for (Header header : headers) {
if (header != null) {
result += header.size();
result += 2;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
index d3803ae..1f59126 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
@@ -28,6 +28,7 @@ import java.util.List;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Content;
import org.apache.james.mailbox.model.FetchGroup;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MimePath;
import org.apache.james.mailbox.model.PartContentDescriptor;
@@ -44,8 +45,8 @@ import org.apache.james.mime4j.util.ContentUtil;
public class ResultUtils {
- public static List<MessageResult.Header> createHeaders(MailboxMessage document) throws IOException {
- List<MessageResult.Header> results = new ArrayList<>();
+ public static List<Header> createHeaders(MailboxMessage document) throws IOException {
+ List<Header> results = new ArrayList<>();
MimeStreamParser parser = new MimeStreamParser(MimeConfig.PERMISSIVE);
parser.setContentHandler(new AbstractContentHandler() {
@Override
@@ -76,8 +77,8 @@ public class ResultUtils {
fieldValue = fieldValue.substring(1);
}
- ResultHeader resultHeader = new ResultHeader(field.getName(), fieldValue);
- results.add(resultHeader);
+ Header header = new Header(field.getName(), fieldValue);
+ results.add(header);
}
});
try {
@@ -187,7 +188,7 @@ public class ResultUtils {
int[] path = path(mimePath);
if (path != null) {
PartContentBuilder builder = build(path, message);
- List<MessageResult.Header> headers = builder.getMessageHeaders();
+ List<Header> headers = builder.getMessageHeaders();
messageResult.setHeaders(mimePath, headers.iterator());
}
}
@@ -197,7 +198,7 @@ public class ResultUtils {
int[] path = path(mimePath);
if (path != null) {
PartContentBuilder builder = build(path, message);
- List<MessageResult.Header> headers = builder.getMimeHeaders();
+ List<Header> headers = builder.getMimeHeaders();
messageResult.setMimeHeaders(mimePath, headers.iterator());
}
}
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
index dfdf2ce..a392954 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
@@ -33,6 +33,7 @@ import org.apache.james.mailbox.ModSeq;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Content;
import org.apache.james.mailbox.model.FetchGroup;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.Headers;
import org.apache.james.mailbox.model.Mailbox;
import org.apache.james.mailbox.model.MailboxId;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
index ebbccbd..a255e61 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
@@ -45,8 +45,8 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.UnsupportedSearchException;
import org.apache.james.mailbox.extractor.TextExtractor;
import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.MessageAttachment;
-import org.apache.james.mailbox.model.MessageResult.Header;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.SearchQuery.AddressType;
import org.apache.james.mailbox.model.SearchQuery.DateResolution;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/AbstractHeaderComparator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/AbstractHeaderComparator.java
index d6137fe..bd5e338 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/AbstractHeaderComparator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/comparator/AbstractHeaderComparator.java
@@ -23,7 +23,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.Locale;
-import org.apache.james.mailbox.model.MessageResult.Header;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.store.ResultUtils;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.slf4j.Logger;
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
index 8864182..534a357 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/FullByteContent.java
@@ -28,8 +28,7 @@ import java.util.List;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Content;
-import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResult.Header;
+import org.apache.james.mailbox.model.Header;
/**
* Abstract base class for {@link Content} implementations which hold the headers and
@@ -42,7 +41,7 @@ public class FullByteContent implements Content {
private final byte[] body;
private final long size;
- public FullByteContent(byte[] body, List<MessageResult.Header> headers) throws MailboxException {
+ public FullByteContent(byte[] body, List<Header> headers) throws MailboxException {
this.headers = headers;
this.body = body;
this.size = caculateSize();
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
index d548d46..6d2b46d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
@@ -28,9 +28,7 @@ import java.util.List;
import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.Content;
-import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResult.Header;
-import org.apache.james.mailbox.store.ResultHeader;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.stream.EntityState;
import org.apache.james.mime4j.stream.MimeConfig;
@@ -223,8 +221,8 @@ public class PartContentBuilder {
return content;
}
- public List<MessageResult.Header> getMimeHeaders() throws IOException, UnexpectedEOFException, MimeException {
- final List<MessageResult.Header> results;
+ public List<Header> getMimeHeaders() throws IOException, UnexpectedEOFException, MimeException {
+ final List<Header> results;
if (empty) {
results = Collections.emptyList();
} else {
@@ -238,7 +236,7 @@ public class PartContentBuilder {
case T_FIELD:
final String fieldValue = parser.getField().getBody().trim();
final String fieldName = parser.getField().getName();
- ResultHeader header = new ResultHeader(fieldName, fieldValue);
+ Header header = new Header(fieldName, fieldValue);
results.add(header);
break;
case T_BODY:
@@ -260,8 +258,8 @@ public class PartContentBuilder {
return results;
}
- public List<MessageResult.Header> getMessageHeaders() throws IOException, MimeException {
- final List<MessageResult.Header> results;
+ public List<Header> getMessageHeaders() throws IOException, MimeException {
+ final List<Header> results;
if (empty) {
results = Collections.emptyList();
} else {
@@ -278,7 +276,7 @@ public class PartContentBuilder {
case T_FIELD:
final String fieldValue = parser.getField().getBody().trim();
final String fieldName = parser.getField().getName();
- ResultHeader header = new ResultHeader(fieldName, fieldValue);
+ Header header = new Header(fieldName, fieldValue);
results.add(header);
break;
case T_BODY:
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderComplexMultipartTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderComplexMultipartTest.java
index 8dd9e95..034093a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderComplexMultipartTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderComplexMultipartTest.java
@@ -29,7 +29,7 @@ import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.commons.io.IOUtils;
-import org.apache.james.mailbox.model.MessageResult.Header;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.store.streaming.PartContentBuilder;
import org.apache.james.mailbox.store.streaming.PartContentBuilder.PartNotFoundException;
import org.junit.Before;
@@ -204,7 +204,7 @@ public class PartContentBuilderComplexMultipartTest {
throws Exception {
List<Header> headers = headers(position);
assertThat(headers.size()).isEqualTo(1);
- ResultHeader header = (ResultHeader) headers.get(0);
+ Header header = (Header) headers.get(0);
assertThat(header.getName()).isEqualTo(CONTENT_TYPE);
assertThat(header.getValue()).isEqualTo(contentType);
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java
index da1b920..5c937b6 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java
@@ -28,7 +28,7 @@ import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.commons.io.IOUtils;
-import org.apache.james.mailbox.model.MessageResult.Header;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.store.streaming.PartContentBuilder;
import org.junit.Before;
import org.junit.Test;
@@ -120,7 +120,7 @@ public class PartContentBuilderMultipartAlternativeTest {
throws Exception {
List<Header> headers = headers(mail, position);
assertThat(headers.size()).isEqualTo(1);
- ResultHeader header = (ResultHeader) headers.get(0);
+ Header header = (Header) headers.get(0);
assertThat(header.getName()).isEqualTo(CONTENT_TYPE);
assertThat(header.getValue()).isEqualTo(contentType);
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
index 866a2e3..ab5862d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
@@ -31,8 +31,8 @@ import javax.mail.internet.MimeUtility;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.message.response.FetchResponse;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.Headers;
-import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mime4j.codec.EncoderUtil;
import org.apache.james.mime4j.dom.address.Address;
import org.apache.james.mime4j.dom.address.AddressList;
@@ -62,7 +62,7 @@ public final class EnvelopeBuilder {
}
private String headerValue(Headers message, String headerName) throws MailboxException {
- final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers());
+ final Header header = MessageResultUtils.getMatching(headerName, message.headers());
final String result;
if (header == null) {
result = null;
@@ -108,7 +108,7 @@ public final class EnvelopeBuilder {
* @throws MailboxException
*/
private FetchResponse.Envelope.Address[] buildAddresses(Headers message, String headerName) throws MailboxException {
- final MessageResult.Header header = MessageResultUtils.getMatching(headerName, message.headers());
+ final Header header = MessageResultUtils.getMatching(headerName, message.headers());
FetchResponse.Envelope.Address[] results;
if (header == null) {
results = null;
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
index 36329fd..4e9906c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
@@ -44,6 +44,7 @@ import org.apache.james.mailbox.ModSeq;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MessageRangeException;
import org.apache.james.mailbox.model.Content;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MimePath;
@@ -302,13 +303,13 @@ public final class FetchResponseBuilder {
private FetchResponse.BodyElement mimeHeaders(MessageResult messageResult, String name, int[] path, boolean isBase) throws MailboxException {
final FetchResponse.BodyElement result;
- final Iterator<MessageResult.Header> headers = getMimeHeaders(messageResult, path, isBase);
- List<MessageResult.Header> lines = MessageResultUtils.getAll(headers);
+ final Iterator<Header> headers = getMimeHeaders(messageResult, path, isBase);
+ List<Header> lines = MessageResultUtils.getAll(headers);
result = new MimeBodyElement(name, lines);
return result;
}
- private HeaderBodyElement headerBodyElement(MessageResult messageResult, String name, List<MessageResult.Header> lines, int[] path, boolean isBase) throws MailboxException {
+ private HeaderBodyElement headerBodyElement(MessageResult messageResult, String name, List<Header> lines, int[] path, boolean isBase) throws MailboxException {
final HeaderBodyElement result = new HeaderBodyElement(name, lines);
// if the size is 2 we had found not header and just want to write the empty line with CLRF terminated
// so check if there is a content for it. If not we MUST NOT write the empty line in any case
@@ -354,27 +355,27 @@ public final class FetchResponseBuilder {
}
return element;
} else {
- final Iterator<MessageResult.Header> headers = getHeaders(messageResult, path, isBase);
- List<MessageResult.Header> lines = MessageResultUtils.getAll(headers);
+ final Iterator<Header> headers = getHeaders(messageResult, path, isBase);
+ List<Header> lines = MessageResultUtils.getAll(headers);
return headerBodyElement(messageResult, name, lines, path, isBase);
}
}
private FetchResponse.BodyElement fieldsNot(MessageResult messageResult, String name, int[] path, Collection<String> names, boolean isBase) throws MailboxException {
- final Iterator<MessageResult.Header> headers = getHeaders(messageResult, path, isBase);
- List<MessageResult.Header> lines = MessageResultUtils.getNotMatching(names, headers);
+ final Iterator<Header> headers = getHeaders(messageResult, path, isBase);
+ List<Header> lines = MessageResultUtils.getNotMatching(names, headers);
return headerBodyElement(messageResult, name, lines, path, isBase);
}
private FetchResponse.BodyElement fields(MessageResult messageResult, String name, int[] path, Collection<String> names, boolean isBase) throws MailboxException {
- final Iterator<MessageResult.Header> headers = getHeaders(messageResult, path, isBase);
- List<MessageResult.Header> lines = MessageResultUtils.getMatching(names, headers);
+ final Iterator<Header> headers = getHeaders(messageResult, path, isBase);
+ List<Header> lines = MessageResultUtils.getMatching(names, headers);
return headerBodyElement(messageResult, name, lines, path, isBase);
}
- private Iterator<MessageResult.Header> getHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException {
- final Iterator<MessageResult.Header> headers;
+ private Iterator<Header> getHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException {
+ final Iterator<Header> headers;
if (isBase) {
headers = messageResult.getHeaders().headers();
} else {
@@ -384,7 +385,7 @@ public final class FetchResponseBuilder {
return headers;
}
- private Iterator<MessageResult.Header> getMimeHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException {
+ private Iterator<Header> getMimeHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException {
MimePath mimePath = new MimePath(path);
return messageResult.iterateMimeHeaders(mimePath);
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeaderBodyElement.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeaderBodyElement.java
index 699728d..e2b3abd 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeaderBodyElement.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/HeaderBodyElement.java
@@ -27,14 +27,14 @@ import java.util.List;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.message.response.FetchResponse.BodyElement;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.model.Header;
/**
* {@link BodyElement} which represent a HEADER element specified by for example (BODY[1.HEADER])
*/
public class HeaderBodyElement extends MimeBodyElement {
- public HeaderBodyElement(String name, List<MessageResult.Header> headers) throws MailboxException {
+ public HeaderBodyElement(String name, List<Header> headers) throws MailboxException {
super(name, headers);
}
@@ -50,7 +50,7 @@ public class HeaderBodyElement extends MimeBodyElement {
}
@Override
- protected long calculateSize(List<MessageResult.Header> headers) throws MailboxException {
+ protected long calculateSize(List<Header> headers) throws MailboxException {
if (headers.isEmpty()) {
// even if the headers are empty we need to include the headers body
// seperator
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
index 4929415..3416670 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MessageResultUtils.java
@@ -28,7 +28,7 @@ import java.util.List;
import javax.mail.MessagingException;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.model.Header;
public class MessageResultUtils {
@@ -36,14 +36,14 @@ public class MessageResultUtils {
* Gets all header lines.
*
* @param iterator
- * {@link org.apache.james.mailbox.MessageResult.Header} <code>Iterator</code>
+ * {@link Header} <code>Iterator</code>
* @return <code>List</code> of <code>MessageResult.Header<code>'s,
* in their natural order
*
* @throws MessagingException
*/
- public static List<MessageResult.Header> getAll(Iterator<MessageResult.Header> iterator) {
- final List<MessageResult.Header> results = new ArrayList<>();
+ public static List<Header> getAll(Iterator<Header> iterator) {
+ final List<Header> results = new ArrayList<>();
if (iterator != null) {
while (iterator.hasNext()) {
results.add(iterator.next());
@@ -59,16 +59,16 @@ public class MessageResultUtils {
* @param names
* header names to be matched, not null
* @param iterator
- * {@link org.apache.james.mailbox.MessageResult.Header} <code>Iterator</code>
+ * {@link Header} <code>Iterator</code>
* @return <code>List</code> of <code>MessageResult.Header</code>'s, in
* their natural order
* @throws MessagingException
*/
- public static List<MessageResult.Header> getMatching(String[] names, Iterator<MessageResult.Header> iterator) throws MailboxException {
- final List<MessageResult.Header> results = new ArrayList<>(20);
+ public static List<Header> getMatching(String[] names, Iterator<Header> iterator) throws MailboxException {
+ final List<Header> results = new ArrayList<>(20);
if (iterator != null) {
while (iterator.hasNext()) {
- MessageResult.Header header = iterator.next();
+ Header header = iterator.next();
final String headerName = header.getName();
if (headerName != null) {
if (Arrays.stream(names)
@@ -88,20 +88,20 @@ public class MessageResultUtils {
* @param names
* header names to be matched, not null
* @param iterator
- * {@link org.apache.james.mailbox.MessageResult.Header} <code>Iterator</code>
+ * {@link Header} <code>Iterator</code>
* @return <code>List</code> of <code>MessageResult.Header</code>'s, in
* their natural order
* @throws MessagingException
*/
- public static List<MessageResult.Header> getMatching(Collection<String> names, Iterator<MessageResult.Header> iterator) throws MailboxException {
+ public static List<Header> getMatching(Collection<String> names, Iterator<Header> iterator) throws MailboxException {
return matching(names, iterator, false);
}
- private static List<MessageResult.Header> matching(Collection<String> names, Iterator<MessageResult.Header> iterator, boolean not) throws MailboxException {
- final List<MessageResult.Header> results = new ArrayList<>(names.size());
+ private static List<Header> matching(Collection<String> names, Iterator<Header> iterator, boolean not) throws MailboxException {
+ final List<Header> results = new ArrayList<>(names.size());
if (iterator != null) {
while (iterator.hasNext()) {
- final MessageResult.Header header = iterator.next();
+ final Header header = iterator.next();
final boolean match = contains(names, header);
final boolean add = (not && !match) || (!not && match);
if (add) {
@@ -112,7 +112,7 @@ public class MessageResultUtils {
return results;
}
- private static boolean contains(Collection<String> names, MessageResult.Header header) throws MailboxException {
+ private static boolean contains(Collection<String> names, Header header) throws MailboxException {
final String headerName = header.getName();
if (headerName != null) {
return names.stream().anyMatch(name -> name.equalsIgnoreCase(headerName));
@@ -127,12 +127,12 @@ public class MessageResultUtils {
* @param names
* header names to be matched, not null
* @param iterator
- * {@link org.apache.james.mailbox.MessageResult.Header} <code>Iterator</code>
+ * {@link Header} <code>Iterator</code>
* @return <code>List</code> of <code>MessageResult.Header</code>'s, in
* their natural order
* @throws MessagingException
*/
- public static List<MessageResult.Header> getNotMatching(Collection<String> names, Iterator<MessageResult.Header> iterator) throws MailboxException {
+ public static List<Header> getNotMatching(Collection<String> names, Iterator<Header> iterator) throws MailboxException {
return matching(names, iterator, true);
}
@@ -148,11 +148,11 @@ public class MessageResultUtils {
* exist
* @throws MessagingException
*/
- public static MessageResult.Header getMatching(String name, Iterator<MessageResult.Header> iterator) throws MailboxException {
- MessageResult.Header result = null;
+ public static Header getMatching(String name, Iterator<Header> iterator) throws MailboxException {
+ Header result = null;
if (name != null) {
while (iterator.hasNext()) {
- MessageResult.Header header = iterator.next();
+ Header header = iterator.next();
final String headerName = header.getName();
if (name.equalsIgnoreCase(headerName)) {
result = header;
@@ -170,16 +170,16 @@ public class MessageResultUtils {
* @param names
* header names, not null
* @param iterator
- * {@link org.apache.james.mailbox.MessageResult.Header} <code>Iterator</code>
+ * {@link Header} <code>Iterator</code>
* @return <code>List</code> of <code>@MessageResult.Header</code>'s, in
* their natural order
* @throws MessagingException
*/
- public static List<MessageResult.Header> getNotMatching(String[] names, Iterator<MessageResult.Header> iterator) throws MailboxException {
- final List<MessageResult.Header> results = new ArrayList<>(20);
+ public static List<Header> getNotMatching(String[] names, Iterator<Header> iterator) throws MailboxException {
+ final List<Header> results = new ArrayList<>(20);
if (iterator != null) {
while (iterator.hasNext()) {
- MessageResult.Header header = iterator.next();
+ Header header = iterator.next();
final String headerName = header.getName();
if (headerName != null) {
boolean match = Arrays.stream(names)
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeBodyElement.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeBodyElement.java
index 9d8466a..9991dcf 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeBodyElement.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/MimeBodyElement.java
@@ -28,7 +28,7 @@ import java.util.List;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.message.response.FetchResponse.BodyElement;
import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.model.Header;
/**
@@ -38,13 +38,13 @@ import org.apache.james.mailbox.model.MessageResult;
public class MimeBodyElement implements BodyElement {
private final String name;
- protected final List<MessageResult.Header> headers;
+ protected final List<Header> headers;
protected long size;
private static final Charset US_ASCII = Charset.forName("US-ASCII");
- public MimeBodyElement(String name, List<MessageResult.Header> headers) throws MailboxException {
+ public MimeBodyElement(String name, List<Header> headers) throws MailboxException {
super();
this.name = name;
this.headers = headers;
@@ -58,13 +58,13 @@ public class MimeBodyElement implements BodyElement {
}
- protected long calculateSize(List<MessageResult.Header> headers) throws MailboxException {
+ protected long calculateSize(List<Header> headers) throws MailboxException {
final int result;
if (headers.isEmpty()) {
result = 0;
} else {
int count = 0;
- for (MessageResult.Header header : headers) {
+ for (Header header : headers) {
count += header.size() + ImapConstants.LINE_END.length();
}
result = count + ImapConstants.LINE_END.length();
@@ -82,7 +82,7 @@ public class MimeBodyElement implements BodyElement {
public InputStream getInputStream() throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
- for (MessageResult.Header header : headers) {
+ for (Header header : headers) {
out.write((header.getName() + ": " + header.getValue() + ImapConstants.LINE_END).getBytes(US_ASCII));
}
// no empty line with CRLF for MIME headers. See IMAP-297
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/MailboxMessageResultUtilsTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/MailboxMessageResultUtilsTest.java
index 751389c..c77374e 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/MailboxMessageResultUtilsTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/fetch/MailboxMessageResultUtilsTest.java
@@ -22,11 +22,10 @@ package org.apache.james.imap.processor.fetch;
import static org.apache.james.imap.processor.fetch.MessageResultUtils.getMatching;
import static org.assertj.core.api.Assertions.assertThat;
-import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.model.Header;
import org.junit.Before;
import org.junit.Test;
@@ -40,48 +39,13 @@ public class MailboxMessageResultUtilsTest {
Header headerThree;
- List<MessageResult.Header> headers;
-
- private static class Header implements MessageResult.Header {
-
- public String name;
-
- public String value;
-
- public Header(String name) {
- this.name = name;
- value = "Value";
- }
-
- @Override
- public long size() {
- return 0;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public String getValue() {
- return value;
- }
-
-
- @Override
- public InputStream getInputStream() {
- return null;
- }
-
-
- }
+ List<Header> headers;
@Before
public void setUp() throws Exception {
- headerOne = new Header("One");
- headerTwo = new Header("Two");
- headerThree = new Header("Three");
+ headerOne = new Header("One", "Value");
+ headerTwo = new Header("Two", "Value");
+ headerThree = new Header("Three", "Value");
headers = new ArrayList<>();
headers.add(headerOne);
headers.add(headerTwo);
@@ -90,7 +54,7 @@ public class MailboxMessageResultUtilsTest {
@Test
public void testGetAllContent() {
- List<MessageResult.Header> results = MessageResultUtils.getAll(headers.iterator());
+ List<Header> results = MessageResultUtils.getAll(headers.iterator());
assertThat(results.size()).isEqualTo(3);
assertThat(results.get(0)).isEqualTo(headerOne);
assertThat(results.get(1)).isEqualTo(headerTwo);
@@ -99,8 +63,7 @@ public class MailboxMessageResultUtilsTest {
@Test
public void testGetMatching() throws Exception {
-
- List<MessageResult.Header> results = MessageResultUtils
+ List<Header> results = MessageResultUtils
.getMatching(NAMES, headers.iterator());
assertThat(results.size()).isEqualTo(2);
assertThat(results.get(0)).isEqualTo(headerOne);
@@ -109,8 +72,7 @@ public class MailboxMessageResultUtilsTest {
@Test
public void testGetNotMatching() throws Exception {
-
- List<MessageResult.Header> results = MessageResultUtils.getNotMatching(NAMES, headers
+ List<Header> results = MessageResultUtils.getNotMatching(NAMES, headers
.iterator());
assertThat(results.size()).isEqualTo(1);
assertThat(results.get(0)).isEqualTo(headerTwo);
diff --git a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ReferenceUpdater.java b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ReferenceUpdater.java
index 410c17d..bfc1c30 100644
--- a/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ReferenceUpdater.java
+++ b/server/protocols/jmap-draft/src/main/java/org/apache/james/jmap/draft/methods/ReferenceUpdater.java
@@ -33,11 +33,11 @@ import org.apache.james.mailbox.MessageIdManager;
import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.FetchGroup;
+import org.apache.james.mailbox.model.Header;
import org.apache.james.mailbox.model.Headers;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResult.Header;
import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.util.streams.Iterators;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org