Hi!

Alfresco's JCR implementation only allows one session per thread.
I think Alfresco stores the session stuff in a Thread Local variable (at least using web services), so there can be only one active session at a time per thread. However, what does prevent you from simply creating a new one overriding the old (which is then lost of course)? Does it throw an exception? On the other hand:
2) And is there a good reason not to change James IMAP's JCR implementation to 
re-use JCR sessions rather than create new ones for a given client?
Sessions contain transactions, so if one mailbox is accessed from several clients simultaneously, we need one session for each client. Using the global mailbox/manager there is definitely a need for creating several sessions, unless I'm mistaken. Each IMAP request needs its own transaction, hence sessions cannot be shared. Within one single request I think we don't need several sessions. The JCR sessions should simply be stored in the James sessions. So "getSession" in Mailbox and MailboxManager would need to be slightly adjusted.
Would it be worth discussing where James IMAP is going in the near-term and 
whether we should coordinate.
You are totally right. I'd be glad if we could find a good design for IMAP and implement it as soon as possible, not least because my maildir implementation will be affected by this process. I'd like to build on a relatively stable structure. That would, by the way, be my only objection to releasing James too soon. First we should stabilize the IMAP stuff.

Regards
Tim

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to