chibenwa commented on a change in pull request #515:
URL: https://github.com/apache/james-project/pull/515#discussion_r660439882



##########
File path: 
mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageStorer.java
##########
@@ -72,22 +73,25 @@
         private final MessageFactory messageFactory;
         private final AttachmentMapperFactory attachmentMapperFactory;
         private final MessageParser messageParser;
+        private final ThreadIdGuessingAlgorithm threadIdGuessingAlgorithm;
 
         public WithAttachment(MailboxSessionMapperFactory mapperFactory, 
MessageId.Factory messageIdFactory,
                               MessageFactory messageFactory, 
AttachmentMapperFactory attachmentMapperFactory,
-                              MessageParser messageParser) {
+                              MessageParser messageParser, 
ThreadIdGuessingAlgorithm threadIdGuessingAlgorithm) {
             this.mapperFactory = mapperFactory;
             this.messageIdFactory = messageIdFactory;
             this.messageFactory = messageFactory;
             this.attachmentMapperFactory = attachmentMapperFactory;
             this.messageParser = messageParser;
+            this.threadIdGuessingAlgorithm = threadIdGuessingAlgorithm;
         }
 
         @Override
         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) throws MailboxException {
             MessageMapper messageMapper = 
mapperFactory.getMessageMapper(session);
             MessageId messageId = messageIdFactory.generate();
-            ThreadId threadId = ThreadId.fromBaseMessageId(messageId);
+            // TODO get mime message header fields

Review comment:
       Likely even better (and less hacky) in parseProperties there is a header 
isntance we do not use...
   
   ```
   private PropertyBuilder parseProperties(BodyOffsetInputStream bIn) throws 
IOException, MimeException {
           // Disable line length... This should be handled by the smtp server
           // component and not the parser itself
           // https://issues.apache.org/jira/browse/IMAP-122
           final MimeTokenStream parser = getParser(bIn);
           final HeaderImpl fields = readHeader(parser);
           
           // All we need for threadId guessing <3
           fields.getFields("Message-Id")
           
           final MaximalBodyDescriptor descriptor = (MaximalBodyDescriptor) 
parser.getBodyDescriptor();
           final MediaType mediaType = getMediaType(descriptor);
           final PropertyBuilder propertyBuilder = 
getPropertyBuilder(descriptor, mediaType.mediaType, mediaType.subType);
           setTextualLinesCount(parser, mediaType.mediaType, propertyBuilder);
           return propertyBuilder;
       }
    ```
    
    That method can then return an object combining properties and threadId....




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



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

Reply via email to