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 2021/07/08 08:47:23 UTC
[james-project] 04/04: JAMES-3516 Using MimeMessageHeadersUtil to
get needed headers input for ThreadIdGuessingAlgorithm::guessThreadId
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 <hq...@linagora.com>
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: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org