james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Trần Tiến Đức (JIRA) <j...@apache.org>
Subject [jira] [Created] (MAILBOX-381) [DeletedMessagesVault] API (not retention) + Contract + impl on top of MailRepository
Date Tue, 19 Feb 2019 10:44:00 GMT
Trần Tiến Đức created MAILBOX-381:

             Summary: [DeletedMessagesVault] API (not retention) + Contract + impl on top
of MailRepository
                 Key: MAILBOX-381
                 URL: https://issues.apache.org/jira/browse/MAILBOX-381
             Project: James Mailbox
          Issue Type: New Feature
            Reporter: Trần Tiến Đức

DeletedMessagesVault is where you store mails after being deleted in `Trash`. It allows to:
 - Store a `DeletedMessage` of an user
 - Delete a `DeletedMessage` stored before by the `MessageId`
 - Search a list of `DeletedMessage` by a `Query`

The proposal API:
interface DeletedMessagesVault {
     Mono<Void> append(User user, DeletedMessage deletedMessage);
     Mono<Void> delete(MessageId messageId);
     Flux<DeletedMessage> search(Query query);

 API will be placed in a new maven module `mailbox/plugin/deleted-messages-vault`

You will also need to define those POJOs
 - DeletedMessage: it wraps a MailboxMessage contents and deleted message metadata:
 - deletion date
 - delivery date
 - recipients
 - sender
 - has attachment
 - origin mailboxes
 - subject (contains, equals / ignore case)
 - Query: this POJO define various search criteria base on list of DeletedMessage metadata.

About DeletedMessagesVault impl

By leverage `MailRepository` component you will create your impl ontop of `MailRepository`.
At the moment `MailRepository` only supports `store` and `remove`, so you have to:
 - Apply search feature in `MailRepository`
 - `DeletedMessagesVault` impl is intend to use `CassandraMailRepository`, `DeletedMessagesVault`
is per-user, and each one points to a specify `MailRepositoryUrl` belong to a specific User.
 - Adapt DeletedMessagesVault impl with `MailRepository` APIs.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org

View raw message