You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2024/11/06 03:44:00 UTC
(james-project) 01/07: JAMES-4082 Move MimePartParser and related classes from the `opensearch` module to the `mailbox-store` module
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b4e7f4cda41f77d9f19bfd3334820a2ee8da2435
Author: TungTV <vt...@linagora.com>
AuthorDate: Mon Nov 4 08:29:24 2024 +0700
JAMES-4082 Move MimePartParser and related classes from the `opensearch` module to the `mailbox-store` module
- This change facilitates easier reuse of these classes in other modules.
---
.../{SerializableMessage.java => EMailerDto.java} | 8 +++-
.../mailbox/opensearch/json/EMailersDto.java} | 24 ++++------
.../{SerializableMessage.java => HeaderDto.java} | 11 ++++-
.../mailbox/opensearch/json/IndexableMessage.java | 52 +++++++++++++---------
.../mailbox/opensearch/json/MimePartDto.java} | 31 ++++++-------
.../{SerializableMessage.java => SubjectsDto.java} | 6 ++-
.../opensearch/query/CriterionConverter.java | 2 +-
.../opensearch/json/IndexableMessageTest.java | 2 +-
.../james/mailbox/store/search/mime}/EMailer.java | 6 +--
.../james/mailbox/store/search/mime}/EMailers.java | 4 +-
.../store/search/mime}/HeaderCollection.java | 5 +--
.../james/mailbox/store/search/mime}/MimePart.java | 15 +------
.../search/mime}/MimePartContainerBuilder.java | 2 +-
.../mailbox/store/search/mime}/MimePartParser.java | 2 +-
.../search/mime}/RootMimePartContainerBuilder.java | 2 +-
.../store/search/mime}/SerializableMessage.java | 2 +-
.../james/mailbox/store/search/mime}/Subjects.java | 4 +-
.../mailbox/store/search/mime}/EMailerTest.java | 2 +-
.../mailbox/store/search/mime}/EMailersTest.java | 2 +-
.../mailbox/store/search/mime}/FieldImpl.java | 2 +-
.../store/search/mime}/HeaderCollectionTest.java | 2 +-
.../mailbox/store/search/mime}/MimePartTest.java | 2 +-
.../mailbox/store/search/mime}/SubjectsTest.java | 2 +-
23 files changed, 92 insertions(+), 98 deletions(-)
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailerDto.java
similarity index 77%
copy from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
copy to mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailerDto.java
index e91a295066..28e30cdb69 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailerDto.java
@@ -19,7 +19,11 @@
package org.apache.james.mailbox.opensearch.json;
-public interface SerializableMessage {
+import java.util.Optional;
- String serialize();
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public record EMailerDto(@JsonProperty(JsonMessageConstants.EMailer.NAME) Optional<String> name,
+ @JsonProperty(JsonMessageConstants.EMailer.ADDRESS) String address,
+ @JsonProperty(JsonMessageConstants.EMailer.DOMAIN) String domain) {
}
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailersDto.java
similarity index 71%
copy from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
copy to mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailersDto.java
index f3790ae555..3936dab398 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailersDto.java
@@ -19,24 +19,18 @@
package org.apache.james.mailbox.opensearch.json;
-import static org.assertj.core.api.Assertions.assertThatCode;
+import java.util.Set;
+import java.util.stream.Collectors;
-import java.util.Optional;
+import org.apache.james.mailbox.store.search.mime.EMailers;
-import org.junit.jupiter.api.Test;
+import com.fasterxml.jackson.annotation.JsonValue;
-import nl.jqno.equalsverifier.EqualsVerifier;
+public record EMailersDto(@JsonValue Set<EMailerDto> emailers) {
-class EMailerTest {
- @Test
- void eMailerShouldRespectBeanContract() {
- EqualsVerifier.forClass(EMailer.class)
- .verify();
- }
-
- @Test
- void shouldSupportNullDomain() {
- assertThatCode(() -> new EMailer(Optional.empty(), "localPart", null))
- .doesNotThrowAnyException();
+ public static EMailersDto from(EMailers eMailers) {
+ return new EMailersDto(eMailers.getEmailers().stream()
+ .map(emailer -> new EMailerDto(emailer.getName(), emailer.getAddress(), emailer.getDomain()))
+ .collect(Collectors.toSet()));
}
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderDto.java
similarity index 73%
copy from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
copy to mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderDto.java
index e91a295066..4fc494245e 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderDto.java
@@ -19,7 +19,14 @@
package org.apache.james.mailbox.opensearch.json;
-public interface SerializableMessage {
+import org.apache.james.mailbox.store.search.mime.HeaderCollection;
- String serialize();
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public record HeaderDto(@JsonProperty(JsonMessageConstants.HEADER.NAME) String headerName,
+ @JsonProperty(JsonMessageConstants.HEADER.VALUE) String value) {
+
+ public static HeaderDto from(HeaderCollection.Header header) {
+ return new HeaderDto(header.getHeaderName(), header.getValue());
+ }
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/IndexableMessage.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/IndexableMessage.java
index 23569aed72..722d8b8988 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/IndexableMessage.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/IndexableMessage.java
@@ -27,6 +27,7 @@ import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;
+import java.util.stream.Collectors;
import org.apache.james.mailbox.ModSeq;
import org.apache.james.mailbox.extractor.TextExtractor;
@@ -36,6 +37,11 @@ import org.apache.james.mailbox.opensearch.IndexBody;
import org.apache.james.mailbox.opensearch.IndexHeaders;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.search.SearchUtil;
+import org.apache.james.mailbox.store.search.mime.EMailers;
+import org.apache.james.mailbox.store.search.mime.HeaderCollection;
+import org.apache.james.mailbox.store.search.mime.MimePart;
+import org.apache.james.mailbox.store.search.mime.MimePartParser;
+import org.apache.james.mailbox.store.search.mime.Subjects;
import org.apache.james.mime4j.MimeException;
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -226,15 +232,15 @@ public class IndexableMessage {
return new Builder();
}
- private final List<MimePart> attachments;
- private final EMailers bcc;
+ private final List<MimePartDto> attachments;
+ private final EMailersDto bcc;
private final Optional<String> bodyHtml;
private final Optional<String> bodyText;
- private final EMailers cc;
+ private final EMailersDto cc;
private final String date;
- private final EMailers from;
+ private final EMailersDto from;
private final boolean hasAttachment;
- private final List<HeaderCollection.Header> headers;
+ private final List<HeaderDto> headers;
private final boolean isAnswered;
private final boolean isDeleted;
private final boolean isDraft;
@@ -250,9 +256,9 @@ public class IndexableMessage {
private final String sentDate;
private final Optional<String> saveDate;
private final long size;
- private final Subjects subjects;
+ private final SubjectsDto subjects;
private final String subType;
- private final EMailers to;
+ private final EMailersDto to;
private final long uid;
private final String[] userFlags;
private final Optional<String> mimeMessageID;
@@ -284,15 +290,19 @@ public class IndexableMessage {
long uid,
String[] userFlags,
Optional<String> mimeMessageID) {
- this.attachments = attachments;
- this.bcc = bcc;
+ this.attachments = attachments.stream()
+ .map(MimePartDto::from)
+ .toList();
+ this.bcc = EMailersDto.from(bcc);
this.bodyHtml = bodyHtml;
this.bodyText = bodyText;
- this.cc = cc;
+ this.cc = EMailersDto.from(cc);
this.date = date;
- this.from = from;
+ this.from = EMailersDto.from(from);
this.hasAttachment = hasAttachment;
- this.headers = headers;
+ this.headers = headers.stream()
+ .map(HeaderDto::from)
+ .collect(Collectors.toList());
this.isAnswered = isAnswered;
this.isDeleted = isDeleted;
this.isDraft = isDraft;
@@ -308,21 +318,21 @@ public class IndexableMessage {
this.sentDate = sentDate;
this.saveDate = saveDate;
this.size = size;
- this.subjects = subjects;
+ this.subjects = new SubjectsDto(subjects.getSubjects());
this.subType = subType;
- this.to = to;
+ this.to = EMailersDto.from(to);
this.uid = uid;
this.userFlags = userFlags;
this.mimeMessageID = mimeMessageID;
}
@JsonProperty(JsonMessageConstants.ATTACHMENTS)
- public List<MimePart> getAttachments() {
+ public List<MimePartDto> getAttachments() {
return attachments;
}
@JsonProperty(JsonMessageConstants.BCC)
- public EMailers getBcc() {
+ public EMailersDto getBcc() {
return bcc;
}
@@ -337,7 +347,7 @@ public class IndexableMessage {
}
@JsonProperty(JsonMessageConstants.CC)
- public EMailers getCc() {
+ public EMailersDto getCc() {
return cc;
}
@@ -347,7 +357,7 @@ public class IndexableMessage {
}
@JsonProperty(JsonMessageConstants.FROM)
- public EMailers getFrom() {
+ public EMailersDto getFrom() {
return from;
}
@@ -357,7 +367,7 @@ public class IndexableMessage {
}
@JsonProperty(JsonMessageConstants.HEADERS)
- public List<HeaderCollection.Header> getHeaders() {
+ public List<HeaderDto> getHeaders() {
return headers;
}
@@ -402,7 +412,7 @@ public class IndexableMessage {
}
@JsonProperty(JsonMessageConstants.SUBJECT)
- public Subjects getSubjects() {
+ public SubjectsDto getSubjects() {
return subjects;
}
@@ -412,7 +422,7 @@ public class IndexableMessage {
}
@JsonProperty(JsonMessageConstants.TO)
- public EMailers getTo() {
+ public EMailersDto getTo() {
return to;
}
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartDto.java
similarity index 53%
copy from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
copy to mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartDto.java
index f3790ae555..d85a2a5a07 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartDto.java
@@ -19,24 +19,25 @@
package org.apache.james.mailbox.opensearch.json;
-import static org.assertj.core.api.Assertions.assertThatCode;
-
import java.util.Optional;
-import org.junit.jupiter.api.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
+import org.apache.james.mailbox.store.search.mime.MimePart;
-class EMailerTest {
- @Test
- void eMailerShouldRespectBeanContract() {
- EqualsVerifier.forClass(EMailer.class)
- .verify();
- }
+import com.fasterxml.jackson.annotation.JsonProperty;
- @Test
- void shouldSupportNullDomain() {
- assertThatCode(() -> new EMailer(Optional.empty(), "localPart", null))
- .doesNotThrowAnyException();
+public record MimePartDto(@JsonProperty(JsonMessageConstants.Attachment.TEXT_CONTENT) Optional<String> bodyTextContent,
+ @JsonProperty(JsonMessageConstants.Attachment.MEDIA_TYPE) Optional<String> mediaType,
+ @JsonProperty(JsonMessageConstants.Attachment.SUBTYPE) Optional<String> subType,
+ @JsonProperty(JsonMessageConstants.Attachment.FILENAME) Optional<String> fileName,
+ @JsonProperty(JsonMessageConstants.Attachment.FILE_EXTENSION) Optional<String> fileExtension,
+ @JsonProperty(JsonMessageConstants.Attachment.CONTENT_DISPOSITION) Optional<String> contentDisposition) {
+ public static MimePartDto from(MimePart mimePart) {
+ return new MimePartDto(mimePart.getTextualBody(),
+ mimePart.getMediaType(),
+ mimePart.getSubType(),
+ mimePart.getFileName(),
+ mimePart.getFileExtension(),
+ mimePart.getContentDisposition());
}
}
+
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SubjectsDto.java
similarity index 90%
copy from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
copy to mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SubjectsDto.java
index e91a295066..365e1e0056 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SubjectsDto.java
@@ -19,7 +19,9 @@
package org.apache.james.mailbox.opensearch.json;
-public interface SerializableMessage {
+import java.util.Set;
- String serialize();
+import com.fasterxml.jackson.annotation.JsonValue;
+
+public record SubjectsDto(@JsonValue Set<String> subjects) {
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
index 87063c9bf2..714d53bee3 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
+++ b/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/query/CriterionConverter.java
@@ -38,8 +38,8 @@ import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.SearchQuery.Criterion;
import org.apache.james.mailbox.model.SearchQuery.HeaderOperator;
import org.apache.james.mailbox.opensearch.OpenSearchMailboxConfiguration;
-import org.apache.james.mailbox.opensearch.json.HeaderCollection;
import org.apache.james.mailbox.opensearch.json.JsonMessageConstants;
+import org.apache.james.mailbox.store.search.mime.HeaderCollection;
import org.opensearch.client.json.JsonData;
import org.opensearch.client.opensearch._types.FieldValue;
import org.opensearch.client.opensearch._types.query_dsl.BoolQuery;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/IndexableMessageTest.java b/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/IndexableMessageTest.java
index 19a32ab087..04385ae896 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/IndexableMessageTest.java
+++ b/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/IndexableMessageTest.java
@@ -289,7 +289,7 @@ class IndexableMessageTest {
// Then
String noTextualBody = "The textual body is not present";
assertThat(indexableMessage.getAttachments())
- .extracting(input -> input.getTextualBody().orElse(noTextualBody))
+ .extracting(input -> input.bodyTextContent().orElse(noTextualBody))
.contains("first attachment content", noTextualBody, "third attachment content");
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailer.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailer.java
similarity index 91%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailer.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailer.java
index c035e8583f..19d68e136e 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailer.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailer.java
@@ -17,12 +17,11 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.util.Objects;
import java.util.Optional;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Joiner;
import com.google.common.base.MoreObjects;
@@ -48,17 +47,14 @@ public class EMailer implements SerializableMessage {
return s;
}
- @JsonProperty(JsonMessageConstants.EMailer.NAME)
public Optional<String> getName() {
return name;
}
- @JsonProperty(JsonMessageConstants.EMailer.ADDRESS)
public String getAddress() {
return address;
}
- @JsonProperty(JsonMessageConstants.EMailer.DOMAIN)
public String getDomain() {
return domain;
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailers.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailers.java
similarity index 94%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailers.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailers.java
index d1a572c86b..fce4c191af 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/EMailers.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/EMailers.java
@@ -17,12 +17,11 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.util.Set;
import java.util.stream.Collectors;
-import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.Preconditions;
public class EMailers implements SerializableMessage {
@@ -38,7 +37,6 @@ public class EMailers implements SerializableMessage {
this.emailers = emailers;
}
- @JsonValue
public Set<EMailer> getEmailers() {
return emailers;
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderCollection.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/HeaderCollection.java
similarity index 97%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderCollection.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/HeaderCollection.java
index ce3d0dfb7e..6066cf6e1f 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/HeaderCollection.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/HeaderCollection.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.time.ZonedDateTime;
import java.util.List;
@@ -32,7 +32,6 @@ import org.apache.james.mime4j.field.address.LenientAddressParser;
import org.apache.james.mime4j.stream.Field;
import org.apache.james.mime4j.util.MimeUtil;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -48,12 +47,10 @@ public class HeaderCollection {
this.value = value;
}
- @JsonProperty(JsonMessageConstants.HEADER.NAME)
public String getHeaderName() {
return headerName;
}
- @JsonProperty(JsonMessageConstants.HEADER.VALUE)
public String getValue() {
return value;
}
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePart.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePart.java
similarity index 95%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePart.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePart.java
index b400929f71..6e4732cc6e 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePart.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePart.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
@@ -39,8 +39,6 @@ import org.apache.james.mime4j.stream.Field;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
import com.github.fge.lambdas.Throwing;
import com.google.common.collect.Lists;
@@ -249,53 +247,43 @@ public class MimePart {
this.bodyTextContent = bodyTextContent;
}
- @JsonIgnore
public List<MimePart> getAttachments() {
return attachments;
}
- @JsonIgnore
public HeaderCollection getHeaderCollection() {
return headerCollection;
}
- @JsonProperty(JsonMessageConstants.Attachment.FILENAME)
public Optional<String> getFileName() {
return fileName;
}
- @JsonProperty(JsonMessageConstants.Attachment.FILE_EXTENSION)
public Optional<String> getFileExtension() {
return fileExtension;
}
- @JsonProperty(JsonMessageConstants.Attachment.MEDIA_TYPE)
public Optional<String> getMediaType() {
return mediaType.map(MediaType::asString);
}
- @JsonProperty(JsonMessageConstants.Attachment.SUBTYPE)
public Optional<String> getSubType() {
return subType.map(SubType::asString);
}
- @JsonProperty(JsonMessageConstants.Attachment.CONTENT_DISPOSITION)
public Optional<String> getContentDisposition() {
return contentDisposition;
}
- @JsonProperty(JsonMessageConstants.Attachment.TEXT_CONTENT)
public Optional<String> getTextualBody() {
return bodyTextContent;
}
- @JsonIgnore
public Optional<String> locateFirstTextBody() {
return firstBody(textAttachments()
.filter(this::isPlainSubType));
}
- @JsonIgnore
public Optional<String> locateFirstHtmlBody() {
if (locateFirstTextBody().isEmpty()) {
return firstBody(textAttachments()
@@ -339,7 +327,6 @@ public class MimePart {
.isPresent();
}
- @JsonIgnore
public Stream<MimePart> getAttachmentsStream() {
return attachments.stream()
.flatMap(mimePart -> Stream.concat(Stream.of(mimePart), mimePart.getAttachmentsStream()))
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartContainerBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartContainerBuilder.java
similarity index 97%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartContainerBuilder.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartContainerBuilder.java
index be742dea29..f3dc788f24 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartContainerBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartContainerBuilder.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.io.InputStream;
import java.nio.charset.Charset;
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartParser.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartParser.java
similarity index 99%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartParser.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartParser.java
index 93e6ad7d99..827a2270c3 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/MimePartParser.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/MimePartParser.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.io.IOException;
import java.io.InputStream;
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/RootMimePartContainerBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/RootMimePartContainerBuilder.java
similarity index 98%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/RootMimePartContainerBuilder.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/RootMimePartContainerBuilder.java
index 90e686b590..e087c59fbb 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/RootMimePartContainerBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/RootMimePartContainerBuilder.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.io.InputStream;
import java.nio.charset.Charset;
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/SerializableMessage.java
similarity index 96%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/SerializableMessage.java
index e91a295066..3577e98262 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/SerializableMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/SerializableMessage.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
public interface SerializableMessage {
diff --git a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/Subjects.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/Subjects.java
similarity index 94%
rename from mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/Subjects.java
rename to mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/Subjects.java
index 3a8600521b..5d500f5ac9 100644
--- a/mailbox/opensearch/src/main/java/org/apache/james/mailbox/opensearch/json/Subjects.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/mime/Subjects.java
@@ -17,11 +17,10 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.util.Set;
-import com.fasterxml.jackson.annotation.JsonValue;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
@@ -38,7 +37,6 @@ public class Subjects implements SerializableMessage {
this.subjects = subjects;
}
- @JsonValue
public Set<String> getSubjects() {
return subjects;
}
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailerTest.java
similarity index 97%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailerTest.java
index f3790ae555..36e1e26b09 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailerTest.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import static org.assertj.core.api.Assertions.assertThatCode;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailersTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailersTest.java
similarity index 98%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailersTest.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailersTest.java
index 33e22fd977..19e4912470 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/EMailersTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/EMailersTest.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/FieldImpl.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/FieldImpl.java
similarity index 97%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/FieldImpl.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/FieldImpl.java
index 6a7b25340b..cf7c0450df 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/FieldImpl.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/FieldImpl.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import java.util.Objects;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/HeaderCollectionTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/HeaderCollectionTest.java
similarity index 99%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/HeaderCollectionTest.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/HeaderCollectionTest.java
index 6d235d155d..1c75f898f1 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/HeaderCollectionTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/HeaderCollectionTest.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/MimePartTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/MimePartTest.java
similarity index 97%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/MimePartTest.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/MimePartTest.java
index 38e7246e2a..cf80c8feff 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/MimePartTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/MimePartTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/SubjectsTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/SubjectsTest.java
similarity index 97%
rename from mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/SubjectsTest.java
rename to mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/SubjectsTest.java
index 7779df597b..8c7bb08fc9 100644
--- a/mailbox/opensearch/src/test/java/org/apache/james/mailbox/opensearch/json/SubjectsTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/mime/SubjectsTest.java
@@ -17,7 +17,7 @@
* under the License. *
****************************************************************/
-package org.apache.james.mailbox.opensearch.json;
+package org.apache.james.mailbox.store.search.mime;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org