Robert Burrell Donkin ha scritto: > On Nov 2, 2007 12:54 AM, Stefano Bagnara <[EMAIL PROTECTED]> wrote: >> Robert Burrell Donkin ha scritto: >>> the problem is that session is used in two different senses: database >>> session and a session of a (session-oriented) protocol >>> >>> if you're using a transactional datastore then yes, you'll need a >>> datastore session to execute transactions but there is no necessity >>> for this to equal the MailboxAPI session >> Maybe there are *3* different sessions: the protocol session (for POP3, >> IMAP, SMTP), the mailboxapi session, the datastore session. >> Or you are saying that the MailboxAPI session will be the same as (or 1 >> to 1 to) the protocols session? > > it's not clearly defined how the MailboxAPI session relates to the > protocol and database sessions > > i've done a class diagram for the interfaces in MailboxAPI see > http://wiki.apache.org/james/BackendMailboxAPI > > IMO this is excessively complex > > in particular: > > * what is the difference between the various Mailbox interfaces and > the various MailboxSession interfaces? > * why are so many interfaces necessary? > > - robert
AFAIK Joachim was comfortable with the "facets". I think the real advantages of that many interfaces was that he was comfortable with them and he was the only one working on the code, so this was a good advantage. I'm fine with a simplification of the interfaces (reduce their number). IMHO the diagram is not so complex. The complexity is in how the objects are linked together and in the dependencies. It's been a long time since I looked at IMAP code last time but IIRC each service depends on too many of this interfaces to have a real gain from splitting the interfaces so much. In the end there are really few users of the Mailbox interface or the MailboxSession interface because most code directly depend on GeneralMailboxSession. I also agree that the fact that MailboxSession extends Mailbox is really weird. Even if I don't know what are their responsibility I don't think that a "Session of something" should extend "something". Maybe they simply need a better name. Stefano --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
