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 no...@apache.org on 2010/03/14 20:39:14 UTC

svn commit: r922932 - /james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java

Author: norman
Date: Sun Mar 14 19:39:14 2010
New Revision: 922932

URL: http://svn.apache.org/viewvc?rev=922932&view=rev
Log:
Reuse JCRMailboxMapper (IMAP-93)

Modified:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java?rev=922932&r1=922931&r2=922932&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java Sun Mar 14 19:39:14 2010
@@ -53,7 +53,9 @@ public class JCRMailbox extends StoreMai
     private final String workspace;
     private final Log log;
     private final String uuid;
-    public final static String MAPPER = "MESSAGE_MAPPER";
+    public final static String MESSAGE_MAPPER = "MESSAGE_MAPPER";
+    public final static String MAILBOX_MAPPER = "MAILBOX_MAPPER";
+
     public JCRMailbox(final org.apache.james.imap.jcr.mail.model.JCRMailbox mailbox, final MailboxSession session, final Repository repository, final String workspace, final Log log) {
         super(mailbox, session );
         this.repository = repository;
@@ -98,25 +100,33 @@ public class JCRMailbox extends StoreMai
     @Override
     protected MessageMapper createMessageMapper(MailboxSession session) throws MailboxException {
         PasswordAwareUser user = (PasswordAwareUser)getMailboxSession().getUser();
-        JCRMessageMapper messageMapper = (JCRMessageMapper) session.getAttributes().get(MAPPER);
+        JCRMessageMapper messageMapper = (JCRMessageMapper) session.getAttributes().get(MESSAGE_MAPPER);
         if (messageMapper == null) {
             messageMapper = new JCRMessageMapper(getSession(user), getMailboxUUID(), log);
-            session.getAttributes().put(MAPPER, messageMapper);
+            session.getAttributes().put(MESSAGE_MAPPER, messageMapper);
         }
         return messageMapper;
     }
 
+    protected JCRMailboxMapper createMailboxMapper(MailboxSession session) throws MailboxException {
+        JCRMailboxMapper mapper = (JCRMailboxMapper) session.getAttributes().get(MAILBOX_MAPPER);
+        if (mapper == null) {
+            PasswordAwareUser user = (PasswordAwareUser)getMailboxSession().getUser();
+            mapper = new JCRMailboxMapper(getSession(user), log);
+            session.getAttributes().put(MAILBOX_MAPPER, mapper);
+        }
+        return mapper;
+    }
+    
     @Override
     protected Mailbox getMailboxRow() throws MailboxException {
-        PasswordAwareUser user = (PasswordAwareUser)getMailboxSession().getUser();
-        final JCRMailboxMapper mapper = new JCRMailboxMapper(getSession(user), log);
+        final JCRMailboxMapper mapper = createMailboxMapper(getMailboxSession());
         return mapper.findMailboxByUUID(getMailboxUUID());
     }
 
     @Override
     protected Mailbox reserveNextUid() throws MailboxException {
-        PasswordAwareUser user = (PasswordAwareUser)getMailboxSession().getUser();
-        final JCRMailboxMapper mapper = new JCRMailboxMapper(getSession(user), log);
+        final JCRMailboxMapper mapper = createMailboxMapper(getMailboxSession());
         return mapper.consumeNextUid(getMailboxUUID());
     }
 
@@ -156,9 +166,13 @@ public class JCRMailbox extends StoreMai
 
     @Override
     protected void onLogout(MailboxSession session) {
-        JCRMessageMapper mapper =  (JCRMessageMapper) session.getAttributes().get(MAPPER);
+        JCRMessageMapper mapper =  (JCRMessageMapper) session.getAttributes().get(MESSAGE_MAPPER);
         if (mapper != null) {
             mapper.destroy();
         }
+        JCRMailboxMapper mailboxMapper = (JCRMailboxMapper) session.getAttributes().get(MAILBOX_MAPPER);
+        if (mailboxMapper != null) {
+            mailboxMapper.destroy();
+        }
     }
 }



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