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 11424cc5fe78504ab510266c0d2a2c4d6537ef80 Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Mon Nov 25 11:28:04 2019 +0700 JAMES-2989 POJOify MimePath --- .../apache/james/mailbox/model/FetchGroupImpl.java | 2 -- .../apache/james/mailbox/model/MessageResult.java | 14 ------------ .../model/{MimePathImpl.java => MimePath.java} | 25 ++++++++++++++++------ .../mailbox/model/PartContentDescriptorImpl.java | 2 -- .../{MimePathImplTest.java => MimePathTest.java} | 10 ++++----- .../james/mailbox/store/MessageResultImpl.java | 1 + .../apache/james/mailbox/store/ResultUtils.java | 2 +- .../mailbox/store/StoreMessageResultIterator.java | 1 + .../james/imap/processor/fetch/FetchProcessor.java | 5 ++--- .../imap/processor/fetch/FetchResponseBuilder.java | 10 ++++----- 10 files changed, 34 insertions(+), 38 deletions(-) diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java index d3b8d62..7cafe91 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/FetchGroupImpl.java @@ -22,8 +22,6 @@ package org.apache.james.mailbox.model; import java.util.HashSet; import java.util.Set; -import org.apache.james.mailbox.model.MessageResult.MimePath; - /** * Specifies a fetch group. */ 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 2cb24c1..7ed64f5 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 @@ -266,19 +266,5 @@ public interface MessageResult extends Comparable<MessageResult> { * Indicates if the message have attachments, regardless of loaded attachments. */ boolean hasAttachments() throws MailboxException; - - /** - * Describes a path within a multipart MIME message. All implementations - * must implement equals. Two paths are equal if and only if each position - * is identical. - */ - interface MimePath { - /** - * Gets the positions of each part in the path. - * - * @return part positions describing the path - */ - int[] getPositions(); - } } diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePathImpl.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePath.java similarity index 73% rename from mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePathImpl.java rename to mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePath.java index 0548429..f77a5ea 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePathImpl.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MimePath.java @@ -23,23 +23,36 @@ package org.apache.james.mailbox.model; import java.util.Arrays; +import java.util.List; -public class MimePathImpl implements MessageResult.MimePath { +import com.github.steveash.guavate.Guavate; +import com.google.common.base.Joiner; + +/** + * Describes a path within a multipart MIME message. All implementations + * must implement equals. Two paths are equal if and only if each position + * is identical. + */ +public final class MimePath { private final int[] positions; - public MimePathImpl(int[] positions) { - this.positions = positions; + public MimePath(int[] positions) { + this.positions = Arrays.copyOf(positions, positions.length); } - @Override + /** + * Gets the positions of each part in the path. + * + * @return part positions describing the path + */ public int[] getPositions() { return positions; } @Override public final boolean equals(Object o) { - if (o instanceof MimePathImpl) { - MimePathImpl mimePath = (MimePathImpl) o; + if (o instanceof MimePath) { + MimePath mimePath = (MimePath) o; return Arrays.equals(this.positions, mimePath.positions); } diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/PartContentDescriptorImpl.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/PartContentDescriptorImpl.java index 6072220..e0761f4 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/PartContentDescriptorImpl.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/PartContentDescriptorImpl.java @@ -22,8 +22,6 @@ package org.apache.james.mailbox.model; import java.util.Objects; import org.apache.james.mailbox.model.MessageResult.FetchGroup.PartContentDescriptor; -import org.apache.james.mailbox.model.MessageResult.MimePath; - public class PartContentDescriptorImpl implements PartContentDescriptor { diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathImplTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathTest.java similarity index 88% rename from mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathImplTest.java rename to mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathTest.java index ff649d2..3715a40 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathImplTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MimePathTest.java @@ -25,31 +25,31 @@ import org.junit.jupiter.api.Test; import nl.jqno.equalsverifier.EqualsVerifier; -class MimePathImplTest { +class MimePathTest { @Test void shouldMatchBeanContract() { - EqualsVerifier.forClass(MimePathImpl.class) + EqualsVerifier.forClass(MimePath.class) .verify(); } @Test void toStringWhenEmpty() { int[] empty = {}; - assertThat(new MimePathImpl(empty).toString()) + assertThat(new MimePath(empty).toString()) .isEqualTo("MIMEPath:[]"); } @Test void toStringWhenSingle() { int[] single = {1}; - assertThat(new MimePathImpl(single).toString()) + assertThat(new MimePath(single).toString()) .isEqualTo("MIMEPath:[1]"); } @Test void toStringWhenMany() { int[] many = {1, 2, 3}; - assertThat(new MimePathImpl(many).toString()) + assertThat(new MimePath(many).toString()) .isEqualTo("MIMEPath:[1, 2, 3]"); } } \ No newline at end of file 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 0e4e4a1..46a92c9 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 @@ -40,6 +40,7 @@ import org.apache.james.mailbox.model.MessageId; import org.apache.james.mailbox.model.MessageMetaData; import org.apache.james.mailbox.model.MessageResult; import org.apache.james.mailbox.model.MimeDescriptor; +import org.apache.james.mailbox.model.MimePath; import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.streaming.InputStreamContent; import org.apache.james.mailbox.store.streaming.InputStreamContent.Type; 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 96a64ac..e83d74d 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 @@ -29,7 +29,7 @@ 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.FetchGroup; -import org.apache.james.mailbox.model.MessageResult.MimePath; +import org.apache.james.mailbox.model.MimePath; import org.apache.james.mailbox.store.mail.model.MailboxMessage; import org.apache.james.mailbox.store.streaming.PartContentBuilder; import org.apache.james.mime4j.MimeException; 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 c18d1f8..aec7a7d 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 @@ -44,6 +44,7 @@ import org.apache.james.mailbox.model.MessageResult; import org.apache.james.mailbox.model.MessageResult.FetchGroup; import org.apache.james.mailbox.model.MessageResultIterator; import org.apache.james.mailbox.model.MimeDescriptor; +import org.apache.james.mailbox.model.MimePath; import org.apache.james.mailbox.store.mail.MessageMapper; import org.apache.james.mailbox.store.mail.MessageMapper.FetchType; import org.apache.james.mailbox.store.mail.model.MailboxMessage; diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java index ebe12e5..03ba656 100644 --- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java +++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java @@ -47,9 +47,8 @@ import org.apache.james.mailbox.model.FetchGroupImpl; import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.MessageResult; import org.apache.james.mailbox.model.MessageResult.FetchGroup; -import org.apache.james.mailbox.model.MessageResult.MimePath; import org.apache.james.mailbox.model.MessageResultIterator; -import org.apache.james.mailbox.model.MimePathImpl; +import org.apache.james.mailbox.model.MimePath; import org.apache.james.metrics.api.MetricFactory; import org.apache.james.util.MDCBuilder; import org.slf4j.Logger; @@ -234,7 +233,7 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> { if (isBase) { result.or(content); } else { - MimePath mimePath = new MimePathImpl(path); + MimePath mimePath = new MimePath(path); result.addPartContent(mimePath, content); } } 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 29b9535..36329fd 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 @@ -46,7 +46,7 @@ import org.apache.james.mailbox.exception.MessageRangeException; import org.apache.james.mailbox.model.Content; import org.apache.james.mailbox.model.MessageRange; import org.apache.james.mailbox.model.MessageResult; -import org.apache.james.mailbox.model.MimePathImpl; +import org.apache.james.mailbox.model.MimePath; public final class FetchResponseBuilder { @@ -290,7 +290,7 @@ public final class FetchResponseBuilder { throw new MailboxException("Unable to get TEXT of body", e); } } else { - MessageResult.MimePath mimePath = new MimePathImpl(path); + MimePath mimePath = new MimePath(path); body = messageResult.getBody(mimePath); } if (body == null) { @@ -378,14 +378,14 @@ public final class FetchResponseBuilder { if (isBase) { headers = messageResult.getHeaders().headers(); } else { - MessageResult.MimePath mimePath = new MimePathImpl(path); + MimePath mimePath = new MimePath(path); headers = messageResult.iterateHeaders(mimePath); } return headers; } private Iterator<MessageResult.Header> getMimeHeaders(MessageResult messageResult, int[] path, boolean isBase) throws MailboxException { - MessageResult.MimePath mimePath = new MimePathImpl(path); + MimePath mimePath = new MimePath(path); return messageResult.iterateMimeHeaders(mimePath); } @@ -400,7 +400,7 @@ public final class FetchResponseBuilder { throw new MailboxException("Unable to get content", e); } } else { - MessageResult.MimePath mimePath = new MimePathImpl(path); + MimePath mimePath = new MimePath(path); full = messageResult.getMimeBody(mimePath); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org