Attachments can be stored separately in the mailbox. This allows protocols and user defined interfaces to directly interact with attachments.
Nowadays, the JPA mailbox does not support such storage. Your goal is to add it. This is a first step to get JPA support for JMAP.
To do so :
- Implement the AttachmentMapper interface in mailbox-jpa mail package.
- You can easily check your implementation by writing a JPAAttachmentMapperTest. To do so, extend the AttachmentMapperTest and allow Attachment mapper creation in JPAMapperProvider (createAttachmentMapper method as well as add Attachment to supported capabilities).
- You need to store attachment ids on JPA messages. Add the related properties in AbstractJPAMailboxMessage. Then implement MessageWithAttachmentMapperTest in JPAMessageWithAttachmentMapperTest to check your work.
- JPAMailboxSessionMapperFactory should then implement AttachmentMapperFactory
- Add the Attachment Message capability as part of JPAMailboxManager