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 arseProperties 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]