... and the mailboxes, and the user subscriptions to mailboxes.

So:
- mailbox (immutable: create/read/delete/query)
- message (immutable: create/read/delete/query)
- message flags (create/read/update/delete/query)
- subscriptions (create/read/update/delete/query)

The mailbox and message datamodel is defined in [1] (please note the need Header and Property are clearly separate objects).

The subscription datamodel is defined in [2].

Tks,
-  Eric

[1] https://svn.apache.org/repos/asf/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model

[2] https://svn.apache.org/repos/asf/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/user/model


First, about email :
- emails are essentially immutable. Once created they do not modify.
- meta information is read/write (like the status - read/unread).
maybe other stuff, I still have to get up to date.
The only read-write you need to care about are the "FLAGS". Nothing else
is allowed to get changed once the mail is stored.
So you have:
- Append message + metadata
- Delete message + metadata
- Change FLAGS which is stored as metadata


Very good summary :)
I would also add the "mailbox" to the message metadata.
Maybe implicit when you say "message", but depending on the choices, the
way we'll implement may vary completely. The mailbox of the message is
r/w because user can move a message from a mailbox to another.


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

Reply via email to