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 <vtt...@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-unsubscr...@james.apache.org
For additional commands, e-mail: notifications-h...@james.apache.org


Reply via email to