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 d0f043aee0c3286b1bdc3e1caf534dedd5466629
Author: quanth <[email protected]>
AuthorDate: Wed Jun 30 11:01:03 2021 +0700

    JAMES-3516 Using MimeMessageHeadersUtil to get needed headers input for 
ThreadIdGuessingAlgorithm::guessThreadId
---
 .../org/apache/james/mailbox/store/MessageStorer.java  | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java
index 7a4c726..c543957 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java
@@ -40,8 +40,11 @@ import 
org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.ThreadIdGuessingAlgorithm;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.james.mailbox.store.mail.model.MimeMessageId;
+import org.apache.james.mailbox.store.mail.model.Subject;
 import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
+import org.apache.james.mailbox.store.mail.utils.MimeMessageHeadersUtil;
 import org.apache.james.mime4j.dom.Message;
 import org.apache.james.mime4j.message.HeaderImpl;
 import org.slf4j.Logger;
@@ -91,8 +94,11 @@ public interface MessageStorer {
         public Mono<Pair<MessageMetaData, 
Optional<List<MessageAttachmentMetadata>>>> appendMessageToStore(Mailbox 
mailbox, Date internalDate, int size, int bodyStartOctet, Content content, 
Flags flags, PropertyBuilder propertyBuilder, Optional<Message> maybeMessage, 
MailboxSession session, HeaderImpl headers) throws MailboxException {
             MessageMapper messageMapper = 
mapperFactory.getMessageMapper(session);
             MessageId messageId = messageIdFactory.generate();
-            // TODO get mime message header fields
-            ThreadId threadId = 
threadIdGuessingAlgorithm.guessThreadId(session.getUser(), messageId, null, 
null, null, null);
+            Optional<MimeMessageId> mimeMessageId = 
MimeMessageHeadersUtil.parseMimeMessageId(headers);
+            Optional<MimeMessageId> inReplyTo = 
MimeMessageHeadersUtil.parseInReplyTo(headers);
+            Optional<List<MimeMessageId>> references = 
MimeMessageHeadersUtil.parseReferences(headers);
+            Optional<Subject> subject = 
MimeMessageHeadersUtil.parseSubject(headers);
+            ThreadId threadId = 
threadIdGuessingAlgorithm.guessThreadId(session.getUser(), messageId, 
mimeMessageId, inReplyTo, references, subject);
 
             return mapperFactory.getMessageMapper(session)
                 .executeReactive(
@@ -151,8 +157,12 @@ public interface MessageStorer {
         public Mono<Pair<MessageMetaData, 
Optional<List<MessageAttachmentMetadata>>>> appendMessageToStore(Mailbox 
mailbox, Date internalDate, int size, int bodyStartOctet, Content content, 
Flags flags, PropertyBuilder propertyBuilder, Optional<Message> maybeMessage, 
MailboxSession session, HeaderImpl headers) throws MailboxException {
             MessageMapper messageMapper = 
mapperFactory.getMessageMapper(session);
             MessageId messageId = messageIdFactory.generate();
-            // TODO get mime message header fields
-            ThreadId threadId = 
threadIdGuessingAlgorithm.guessThreadId(session.getUser(), messageId, null, 
null, null, null);
+            Optional<MimeMessageId> mimeMessageId = 
MimeMessageHeadersUtil.parseMimeMessageId(headers);
+            Optional<MimeMessageId> inReplyTo = 
MimeMessageHeadersUtil.parseInReplyTo(headers);
+            Optional<List<MimeMessageId>> references = 
MimeMessageHeadersUtil.parseReferences(headers);
+            Optional<Subject> subject = 
MimeMessageHeadersUtil.parseSubject(headers);
+            ThreadId threadId = 
threadIdGuessingAlgorithm.guessThreadId(session.getUser(), messageId, 
mimeMessageId, inReplyTo, references, subject);
+
             MailboxMessage message = messageFactory.createMessage(messageId, 
threadId, mailbox, internalDate, size, bodyStartOctet, content, flags, 
propertyBuilder, ImmutableList.of());
 
             return mapperFactory.getMessageMapper(session)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to