Joachim Draeger wrote:
Stefano Bagnara wrote:

FolderAware: why does a mailRepository implements a FolderAware interface that returns a Folder that is then incapsulated in a JavaMailImapMailbox ? Can't we change the FolderAware to directly return an ImapMailbox so we don't have direct access to the underlying Javamail Folder interface at this level?

That is only an interim solution to allow access from the James side and from the imap server side until we are sure how to design the new MailStore. Then ImapMailbox and ImapStore interfaces will be obsolete and James MailStore could be used directly.

Can you reply to the question itself? I understand your points but the answer to the question will help me better understand if I learned enough of that part ;-)

What is the relation between users and store/mailboxes ? Is it like pop3 where we can keep it totally separated and simply have a method to lookup a repository associated to a given user (to store mail in localdelivery and to retrieve it in pop3server)?

I think yes by now. But for future enhancements we should keep in mind the possibiltiy of implementing ACLs which would allow reading mailbox of other users or group mailboxes.
But this would be a feature to implement when everything else works stable.

Ok, the important thing is that there is no direct association from a mailbox to an user. Given a user we simply have to provide a method to find the mailbox/mailboxes he can see.

To name them in a James style I would rename ImapMailbox to MessageRepository. ImapStore functionality could be instead integrated in our current Store.

I Agree. But I'm not sure if we should adopt it 1:1.

As you proposed we may introduce a "simple" MessageRepository with limited capabilities and an ImapMessageRepository (or HierarchicalMessageRepository, or AdvancedMessageRepository) exposing the current functionalities of ImapMailbox.

getUidValidity, getUidNext, getMsn: what are intended for?

uidValidity is a (random or current time?) number that is generated when the store is created. The first message stored get's the uid 1 the next 2. If the store is created again from scratch (maybe because of a system crash) that uidvalidity changes and the client knows that he can't depend on the now outdated uids. getUidNext is the uid the next new message will get.
getMsn translates Uid to message number

Currently repositories do not have a persistent place to remember this thing, but maybe we simply have to create an hash of the repository configuration so it changes only when the repository configuration is change. We probably don't need to make it to change in different circumstances.

It is hard to foresee all the requirements without understanding the whole thing.

I know I can't understand the whole thing if I don't soil my hands in the mud...

I'm not deep enough, either. :-) Nobody is, so it's hard to make decisions.

Joachim

Let's follow the best path with what we currently have and let's hope our instinct will bring us on the right way ;-)

Stefano


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to