You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Tellier Benoit (JIRA)" <ji...@apache.org> on 2019/03/01 08:50:00 UTC

[jira] [Resolved] (MAILBOX-381) [DeletedMessagesVault] API (not retention) + Contract + impl on top of MailRepository

     [ https://issues.apache.org/jira/browse/MAILBOX-381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tellier Benoit resolved MAILBOX-381.
------------------------------------
    Resolution: Fixed

> [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
>            Priority: Major
>
> 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:
> {code:java}
> interface DeletedMessagesVault {
>      Mono<Void> append(User user, DeletedMessage deletedMessage);
>      Mono<Void> delete(MessageId messageId);
>      Flux<DeletedMessage> search(Query query);
>  }{code}
>  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
(v7.6.3#76005)

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