Author: norman
Date: Sun Mar 14 19:24:38 2010
New Revision: 922931

URL: http://svn.apache.org/viewvc?rev=922931&view=rev
Log:
Refactor code to be apple to use the MailboxSession for storing per session 
objects. This includes to use one JCR Session per Mapper during MailboxSession 
(IMAP-93). The same should be done for EntityManager 
Remove duplicated code

Added:
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
      - copied, changed from r921935, 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/InMemoryUserManager.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/User.java
      - copied, changed from r921935, 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/User.java
Removed:
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/InMemoryUserManager.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/User.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/UserDetails.java
Modified:
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java
    
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java
    
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMapper.java
    
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
    
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
    
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
    
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
    james/imap/trunk/parent/pom.xml
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
    
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

Copied: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
 (from r921935, 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/InMemoryUserManager.java)
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java?p2=james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java&p1=james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/InMemoryUserManager.java&r1=921935&r2=922931&rev=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/InMemoryUserManager.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/InMemoryUserManager.java
 Sun Mar 14 19:24:38 2010
@@ -17,12 +17,13 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.imap.functional.jpa.user;
+package org.apache.james.imap.functional;
 
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
 import org.apache.james.imap.store.Authenticator;
 import org.apache.james.imap.store.Subscriber;
@@ -49,31 +50,34 @@ public class InMemoryUserManager impleme
         return result;
     }
 
-    public void subscribe(org.apache.james.imap.mailbox.MailboxSession.User 
userid, String mailbox)
+    public void subscribe(MailboxSession session, String mailbox)
             throws SubscriptionException {
-        User user = (User) users.get(userid);
+        MailboxSession.User u = session.getUser();
+        User user = (User) users.get(u.getUserName());
         if (user == null) {
-            user = new User(userid.getUserName());
-            users.put(userid.getUserName(), user);
+            user = new User(u.getUserName());
+            users.put(u.getUserName(), user);
         }
         user.addSubscription(mailbox);
     }
 
-    public Collection<String> 
subscriptions(org.apache.james.imap.mailbox.MailboxSession.User userid) throws 
SubscriptionException {
-        User user = (User) users.get(userid.getUserName());
+    public Collection<String> 
subscriptions(org.apache.james.imap.mailbox.MailboxSession session) throws 
SubscriptionException {
+        MailboxSession.User u = session.getUser();
+        User user = (User) users.get(u.getUserName());
         if (user == null) {
-            user = new User(userid.getUserName());
-            users.put(userid.getUserName(), user);
+            user = new User(u.getUserName());
+            users.put(u.getUserName(), user);
         }
         return user.getSubscriptions();
     }
 
-    public void unsubscribe(org.apache.james.imap.mailbox.MailboxSession.User 
userid, String mailbox)
+    public void unsubscribe(org.apache.james.imap.mailbox.MailboxSession 
session, String mailbox)
             throws SubscriptionException {
-        User user = (User) users.get(userid.getUserName());
+        MailboxSession.User u = session.getUser();
+        User user = (User) users.get(u.getUserName());
         if (user == null) {
-            user = new User(userid.getUserName());
-            users.put(userid.getUserName(), user);
+            user = new User(u.getUserName());
+            users.put(u.getUserName(), user);
         }
         user.removeSubscription(mailbox);
     }

Copied: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/User.java
 (from r921935, 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/User.java)
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/User.java?p2=james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/User.java&p1=james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/User.java&r1=921935&r2=922931&rev=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/user/User.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/User.java
 Sun Mar 14 19:24:38 2010
@@ -17,7 +17,7 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.imap.functional.jpa.user;
+package org.apache.james.imap.functional;
 
 import java.util.Collection;
 import java.util.Collections;

Modified: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/inmemory/InMemoryHostSystem.java
 Sun Mar 14 19:24:38 2010
@@ -21,7 +21,7 @@ package org.apache.james.imap.functional
 
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
-import org.apache.james.imap.functional.jpa.user.InMemoryUserManager;
+import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.inmemory.InMemoryMailboxManager;
 import org.apache.james.imap.inmemory.InMemorySubscriptionManager;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;

Modified: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jcr/JCRHostSystem.java
 Sun Mar 14 19:24:38 2010
@@ -28,7 +28,7 @@ import org.apache.jackrabbit.core.Reposi
 import org.apache.jackrabbit.core.config.RepositoryConfig;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
-import org.apache.james.imap.functional.jpa.user.InMemoryUserManager;
+import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.jcr.JCRGlobalUserMailboxManager;
 import org.apache.james.imap.jcr.JCRGlobalUserSubscriptionManager;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;

Modified: 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/JPAHostSystem.java
 Sun Mar 14 19:24:38 2010
@@ -27,7 +27,7 @@ import javax.persistence.EntityManagerFa
 import org.apache.commons.io.FileUtils;
 import org.apache.james.imap.encode.main.DefaultImapEncoderFactory;
 import org.apache.james.imap.functional.ImapHostSystem;
-import org.apache.james.imap.functional.jpa.user.InMemoryUserManager;
+import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.jpa.JPASubscriptionManager;
 import org.apache.james.imap.jpa.openjpa.OpenJPAMailboxManager;
 import org.apache.james.imap.main.DefaultImapDecoderFactory;

Modified: 
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
 (original)
+++ 
james/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
 Sun Mar 14 19:24:38 2010
@@ -27,6 +27,7 @@ import java.util.Locale;
 
 import org.apache.commons.configuration.BaseConfiguration;
 import org.apache.james.imap.functional.ImapHostSystem;
+import org.apache.james.imap.functional.InMemoryUserManager;
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
@@ -159,7 +160,7 @@ public class TorqueMailboxManagerProvide
 
     private static TorqueMailboxManager TORQUE_MAILBOX_MANAGER;
 
-    private static SimpleUserManager USER_MANAGER;
+    private static InMemoryUserManager USER_MANAGER;
 
 
     public static final ImapHostSystem HOST = new TorqueHostSystem();
@@ -175,7 +176,7 @@ public class TorqueMailboxManagerProvide
 
     private static TorqueMailboxManager getMailboxManager() throws Exception {
         if (TORQUE_MAILBOX_MANAGER == null) {
-            USER_MANAGER = new SimpleUserManager();
+            USER_MANAGER = new InMemoryUserManager();
             initialize();
             TORQUE_MAILBOX_MANAGER = new TorqueMailboxManager(USER_MANAGER, 
USER_MANAGER);
         }

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=922931&r1=922930&r2=922931&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:24:38 2010
@@ -53,7 +53,7 @@ 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 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,8 +98,11 @@ public class JCRMailbox extends StoreMai
     @Override
     protected MessageMapper createMessageMapper(MailboxSession session) throws 
MailboxException {
         PasswordAwareUser user = 
(PasswordAwareUser)getMailboxSession().getUser();
-
-        JCRMessageMapper messageMapper = new 
JCRMessageMapper(getSession(user), getMailboxUUID(), log);
+        JCRMessageMapper messageMapper = (JCRMessageMapper) 
session.getAttributes().get(MAPPER);
+        if (messageMapper == null) {
+            messageMapper = new JCRMessageMapper(getSession(user), 
getMailboxUUID(), log);
+            session.getAttributes().put(MAPPER, messageMapper);
+        }
         return messageMapper;
     }
 
@@ -149,4 +152,13 @@ public class JCRMailbox extends StoreMai
     protected Repository getRepository() {
         return repository;
     }
+
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        JCRMessageMapper mapper =  (JCRMessageMapper) 
session.getAttributes().get(MAPPER);
+        if (mapper != null) {
+            mapper.destroy();
+        }
+    }
 }

Modified: 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
 (original)
+++ 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
 Sun Mar 14 19:24:38 2010
@@ -55,7 +55,7 @@ public class JCRMailboxManager extends S
     private final Repository repository;
     private final String workspace;
     private final Log logger = LogFactory.getLog(JCRMailboxManager.class);
-    
+    public final static String MAPPER = "MAILBOX_MAPPER";
     public JCRMailboxManager(final Authenticator authenticator, final 
Subscriber subscriber, final Repository repository, final String workspace) {
         super(authenticator, subscriber);
         this.repository = repository;
@@ -70,8 +70,12 @@ public class JCRMailboxManager extends S
 
     @Override
     protected MailboxMapper createMailboxMapper(MailboxSession session) throws 
MailboxException {
-        Session jcrSession = getSession(session);
-        return new JCRMailboxMapper(jcrSession, logger);
+        JCRMailboxMapper mapper = (JCRMailboxMapper) 
session.getAttributes().get(MAPPER);
+        if (mapper == null) {
+            mapper = new JCRMailboxMapper(getSession(session), logger);
+            session.getAttributes().put(MAPPER, mapper);
+        }
+        return mapper;
 
     }
 
@@ -137,4 +141,12 @@ public class JCRMailboxManager extends S
     protected Repository getRepository() {
         return repository;
     }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        JCRMailboxMapper mapper = (JCRMailboxMapper) 
session.getAttributes().get(MAPPER);
+        if (mapper != null) {
+            mapper.destroy();
+        }
+    }
 }

Modified: 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMapper.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMapper.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMapper.java 
(original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMapper.java 
Sun Mar 14 19:24:38 2010
@@ -33,5 +33,12 @@ public abstract class JCRMapper extends 
     protected Session getSession() {
         return session;
     }
+
+    /**
+     * Logout form the session
+     */
+    public void destroy() {
+        session.logout();
+    }
     
 }

Modified: 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
 (original)
+++ 
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRSubscriptionManager.java
 Sun Mar 14 19:24:38 2010
@@ -31,8 +31,8 @@ import org.apache.james.imap.api.display
 import org.apache.james.imap.jcr.user.JCRSubscriptionMapper;
 import org.apache.james.imap.jcr.user.model.JCRSubscription;
 import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
-import org.apache.james.imap.mailbox.MailboxSession.User;
 import org.apache.james.imap.store.PasswordAwareUser;
 import org.apache.james.imap.store.StoreSubscriptionManager;
 import org.apache.james.imap.store.user.SubscriptionMapper;
@@ -46,6 +46,7 @@ import org.apache.james.imap.store.user.
 public class JCRSubscriptionManager extends StoreSubscriptionManager {
     private Log logger = LogFactory.getLog(JCRSubscriptionManager.class);
 
+    public final static String MAPPER = "SUBSCRIPTION_MAPPER";
     private final Repository repository;
     private String workspace;
 
@@ -56,16 +57,22 @@ public class JCRSubscriptionManager exte
     }
 
     @Override
-    protected SubscriptionMapper createMapper(User user) throws 
SubscriptionException {
-        PasswordAwareUser pUser = (PasswordAwareUser) user;
-
-        JCRSubscriptionMapper mapper = new 
JCRSubscriptionMapper(getSession(pUser), logger);
+    protected SubscriptionMapper createMapper(MailboxSession session) throws 
SubscriptionException {
+        PasswordAwareUser pUser = (PasswordAwareUser) session.getUser();
+        
+        // check if we have already a mapper for the session
+        JCRSubscriptionMapper mapper = (JCRSubscriptionMapper) 
session.getAttributes().get(MAPPER);
+        if (mapper == null) {
+            // no mapper found so create one an store it
+            mapper = new JCRSubscriptionMapper(getSession(pUser), logger);
+            session.getAttributes().put(MAPPER, mapper);
+        }
         return mapper;
     }
 
     @Override
-    protected Subscription createSubscription(User user, String mailbox) {
-        return new JCRSubscription(user.getUserName(), mailbox, logger);
+    protected Subscription createSubscription(MailboxSession session, String 
mailbox) {
+        return new JCRSubscription(session.getUser().getUserName(), mailbox, 
logger);
     }
 
     /**
@@ -100,4 +107,12 @@ public class JCRSubscriptionManager exte
     protected Repository getRepository() {
         return repository;
     }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        JCRSubscriptionMapper mapper = (JCRSubscriptionMapper) 
session.getAttributes().get(MAPPER);
+        if (mapper != null) {
+            mapper.destroy();
+        }
+    }
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java 
(original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java 
Sun Mar 14 19:24:38 2010
@@ -48,6 +48,7 @@ public abstract class JPAMailbox extends
 
     protected final EntityManagerFactory entityManagerFactory;
 
+    public final static String MESSAGE_MAPPER = "MESSAGE_MAPPER";
     public JPAMailbox(final Mailbox mailbox, MailboxSession session, final 
EntityManagerFactory entityManagerfactory) {
         super(mailbox, session);
         this.entityManagerFactory = entityManagerfactory;
@@ -58,18 +59,19 @@ public abstract class JPAMailbox extends
      * 
      * @return mapper
      */
-    protected abstract JPAMailboxMapper createMailboxMapper();
+    protected abstract JPAMailboxMapper createMailboxMapper(MailboxSession 
session);
 
     @Override
     protected Mailbox getMailboxRow() throws MailboxException {
-        final MailboxMapper mapper = createMailboxMapper();
+        final MailboxMapper mapper = createMailboxMapper(getMailboxSession());
         return mapper.findMailboxById(mailboxId);
     }
 
     
     @Override
     protected MessageMapper createMessageMapper(MailboxSession session) {
-        final MessageMapper mapper = new 
JPAMessageMapper(entityManagerFactory.createEntityManager(), mailboxId);
+        JPAMessageMapper mapper = new 
JPAMessageMapper(entityManagerFactory.createEntityManager(), mailboxId);
+       
         return mapper;
     }
     
@@ -99,8 +101,15 @@ public abstract class JPAMailbox extends
 
     @Override
     protected Mailbox reserveNextUid() throws MailboxException {
-        final JPAMailboxMapper mapper = createMailboxMapper();
+        final JPAMailboxMapper mapper = 
createMailboxMapper(getMailboxSession());
         final Mailbox mailbox = mapper.consumeNextUid(mailboxId);
         return mailbox;
+    }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        
     }    
+    
+    
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPASubscriptionManager.java
 Sun Mar 14 19:24:38 2010
@@ -22,26 +22,45 @@ import javax.persistence.EntityManagerFa
 
 import org.apache.james.imap.jpa.user.JPASubscriptionMapper;
 import org.apache.james.imap.jpa.user.model.JPASubscription;
-import org.apache.james.imap.mailbox.MailboxSession.User;
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.store.StoreSubscriptionManager;
 import org.apache.james.imap.store.user.SubscriptionMapper;
 import org.apache.james.imap.store.user.model.Subscription;
 
 public class JPASubscriptionManager extends StoreSubscriptionManager {
     private final EntityManagerFactory factory;
+    public final static String MAPPER = "SUBSCRIPTION_MAPPER";
     
     public JPASubscriptionManager(final EntityManagerFactory factory) {
         super();
         this.factory = factory;
     }
 
-    protected SubscriptionMapper createMapper(User user) {
-        final JPASubscriptionMapper mapper = new 
JPASubscriptionMapper(factory.createEntityManager());
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.imap.store.StoreSubscriptionManager#createMapper(org.apache.james.imap.mailbox.MailboxSession)
+     */
+    protected SubscriptionMapper createMapper(MailboxSession session) {
+        
+        JPASubscriptionMapper  mapper = new 
JPASubscriptionMapper(factory.createEntityManager());
+        
         return mapper;
     }
     
-    protected Subscription createSubscription(final User user, final String 
mailbox) {
-        final Subscription newSubscription = new 
JPASubscription(user.getUserName(), mailbox);
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.imap.store.StoreSubscriptionManager#createSubscription(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
+     */
+    protected Subscription createSubscription(final MailboxSession session, 
final String mailbox) {
+        final Subscription newSubscription = new 
JPASubscription(session.getUser().getUserName(), mailbox);
         return newSubscription;
     }
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.imap.store.StoreSubscriptionManager#onLogout(org.apache.james.imap.mailbox.MailboxSession)
+     */
+    protected void onLogout(MailboxSession session) {
+        
+    }
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPATransactionalMapper.java
 Sun Mar 14 19:24:38 2010
@@ -77,4 +77,12 @@ public class JPATransactionalMapper exte
         }
     }
 
+
+    /**
+     * Close the underlying EntityManager if its still open
+     */
+    public void destroy() {
+
+    }
+
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
 Sun Mar 14 19:24:38 2010
@@ -33,17 +33,21 @@ import org.apache.james.imap.store.mail.
  */
 public class OpenJPAMailbox extends JPAMailbox{
 
+    public final static String MAILBOX_MAPPER = "MAILBOX_MAPPER";
     public OpenJPAMailbox(Mailbox mailbox,
                MailboxSession session, EntityManagerFactory 
entityManagerfactory) {
                super(mailbox, session, entityManagerfactory);
        }
 
+
     /*
      * (non-Javadoc)
-     * @see org.apache.james.imap.jpa.JPAMailbox#createMailboxMapper()
+     * @see 
org.apache.james.imap.jpa.JPAMailbox#createMailboxMapper(org.apache.james.imap.mailbox.MailboxSession)
      */
-       protected JPAMailboxMapper createMailboxMapper() {
-        final JPAMailboxMapper mapper = new 
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
+       protected JPAMailboxMapper createMailboxMapper(MailboxSession session) {
+        JPAMailboxMapper mapper = new 
OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
+
         return mapper;
     }
+
 }

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
 Sun Mar 14 19:24:38 2010
@@ -53,4 +53,10 @@ public class OpenJPAMailboxManager exten
         result = new OpenJPAMailbox(mailboxRow, session, entityManagerFactory);
         return result;
     }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        // TODO Auto-generated method stub
+        
+    }
 }

Modified: 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
 (original)
+++ 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
 Sun Mar 14 19:24:38 2010
@@ -144,5 +144,18 @@ public class InMemoryMailboxManager exte
             
         });
     }
+
+    /**
+     * 
+     */
+    public void destroy() {
+        // Nothing todo
+    }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        // Nothing todo
+        
+    }
     
 }

Modified: 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
 (original)
+++ 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
 Sun Mar 14 19:24:38 2010
@@ -190,4 +190,18 @@ public class InMemoryStoreMailbox extend
     public void execute(Transaction transaction) throws MailboxException {
         transaction.run();
     }
+
+    /*
+     * (non-Javadoc)
+     * @see 
org.apache.james.imap.store.transaction.TransactionalMapper#destroy()
+     */
+    public void destroy() {
+        // nothing todo
+    }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        // Nothing todo
+        
+    }
 }

Modified: 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
 (original)
+++ 
james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemorySubscriptionManager.java
 Sun Mar 14 19:24:38 2010
@@ -26,6 +26,7 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.MailboxSession.User;
 import org.apache.james.imap.store.StoreSubscriptionManager;
 import org.apache.james.imap.store.user.SubscriptionMapper;
@@ -45,13 +46,13 @@ public class InMemorySubscriptionManager
     }
 
     @Override
-    protected SubscriptionMapper createMapper(User user) {
+    protected SubscriptionMapper createMapper(MailboxSession session) {
         return this;
     }
 
     @Override
-    protected Subscription createSubscription(User user, String mailbox) {
-        return new InMemorySubscription(mailbox, user);
+    protected Subscription createSubscription(MailboxSession session, String 
mailbox) {
+        return new InMemorySubscription(mailbox, session.getUser());
     }
 
     public synchronized void delete(Subscription subscription) {
@@ -169,4 +170,14 @@ public class InMemorySubscriptionManager
     public void execute(Transaction transaction) throws MailboxException {
         transaction.run();
     }
+
+    public void destroy() {
+        // Nothing todo
+    }
+
+    @Override
+    protected void onLogout(MailboxSession session) {
+        // Nothing todo
+        
+    }
 }

Modified: james/imap/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/parent/pom.xml?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- james/imap/trunk/parent/pom.xml (original)
+++ james/imap/trunk/parent/pom.xml Sun Mar 14 19:24:38 2010
@@ -550,7 +550,7 @@
       <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
-      <version>1.5.11</version>
+      <version>1.5.7</version>
       <scope>test</scope>
     </dependency>
       <!-- 

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
 Sun Mar 14 19:24:38 2010
@@ -600,4 +600,6 @@ public abstract class StoreMailbox imple
             
         return new MailboxMetaData(recent, permanentFlags, uidValidity, 
uidNext, messageCount, unseenCount, firstUnseen, isWriteable());
     }
+    
+    protected abstract void onLogout(MailboxSession session);
 }

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
 Sun Mar 14 19:24:38 2010
@@ -64,6 +64,8 @@ public abstract class StoreMailboxManage
     
     private final char delimiter;
 
+    public final static String MAILBOX = "MAILBOX";
+    
     public StoreMailboxManager(final Authenticator authenticator, final 
Subscriber subscriber) {
         this(authenticator, subscriber, '.');
     }
@@ -132,6 +134,9 @@ public abstract class StoreMailboxManage
                 if (result == null) {
                     result = createMailbox(mailboxRow, session);
                     mailboxes.put(mailboxName, result);
+                    
+                    // store the mailbox in the session so we can cleanup 
things later
+                    session.getAttributes().put(MAILBOX, result);
                 }
                 return result;
             }
@@ -427,7 +432,7 @@ public abstract class StoreMailboxManage
      */
     public void subscribe(MailboxSession session, String mailbox)
     throws SubscriptionException {
-        subscriber.subscribe(session.getUser(), mailbox);
+        subscriber.subscribe(session, mailbox);
     }
 
     /*
@@ -435,7 +440,7 @@ public abstract class StoreMailboxManage
      * @see 
org.apache.james.imap.mailbox.MailboxManager#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
      */
     public Collection<String> subscriptions(MailboxSession session) throws 
SubscriptionException {
-        return subscriber.subscriptions(session.getUser());
+        return subscriber.subscriptions(session);
     }
 
     /*
@@ -444,7 +449,7 @@ public abstract class StoreMailboxManage
      */
     public void unsubscribe(MailboxSession session, String mailbox)
     throws SubscriptionException {
-        subscriber.unsubscribe(session.getUser(), mailbox);
+        subscriber.unsubscribe(session, mailbox);
     }
 
     /*
@@ -474,10 +479,26 @@ public abstract class StoreMailboxManage
      * @see 
org.apache.james.imap.mailbox.MailboxManager#logout(org.apache.james.imap.mailbox.MailboxSession,
 boolean)
      */
     public void logout(MailboxSession session, boolean force) throws 
MailboxException {
-        // fine
+        if (session != null) {
+            if (subscriber instanceof StoreSubscriptionManager) {
+                ((StoreSubscriptionManager) subscriber).onLogout(session);
+            }
+            StoreMailbox mailbox = (StoreMailbox) 
session.getAttributes().get(MAILBOX);
+            if (mailbox != null) {
+                mailbox.onLogout(session);
+            }
+            onLogout(session);
+        }
     }
     
     /**
+     * Get called on logout if the session is not null
+     * 
+     * @param session
+     */
+    protected abstract void onLogout(MailboxSession session);
+    
+    /**
      * Return the delemiter to use
      * 
      * @return delemiter

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreSubscriptionManager.java
 Sun Mar 14 19:24:38 2010
@@ -23,8 +23,8 @@ import java.util.HashSet;
 import java.util.List;
 
 import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
-import org.apache.james.imap.mailbox.MailboxSession.User;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 import org.apache.james.imap.store.user.SubscriptionMapper;
 import org.apache.james.imap.store.user.model.Subscription;
@@ -45,22 +45,22 @@ public abstract class StoreSubscriptionM
      * 
      * @return mapper
      */
-    protected abstract SubscriptionMapper createMapper(User user) throws 
SubscriptionException;
+    protected abstract SubscriptionMapper createMapper(MailboxSession session) 
throws SubscriptionException;
     
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.imap.store.Subscriber#subscribe(org.apache.james.imap.mailbox.MailboxSession.User,
 java.lang.String)
+     * @see 
org.apache.james.imap.store.Subscriber#subscribe(org.apache.james.imap.mailbox.MailboxSession,
 java.lang.String)
      */
-    public void subscribe(final User user, final String mailbox) throws 
SubscriptionException {
-        final SubscriptionMapper mapper = createMapper(user);
+    public void subscribe(final MailboxSession session, final String mailbox) 
throws SubscriptionException {
+        final SubscriptionMapper mapper = createMapper(session);
         try {
             mapper.execute(new TransactionalMapper.Transaction() {
 
                 public void run() throws MailboxException {
-                    final Subscription subscription = 
mapper.findFindMailboxSubscriptionForUser(user.getUserName(), mailbox);
+                    final Subscription subscription = 
mapper.findFindMailboxSubscriptionForUser(session.getUser().getUserName(), 
mailbox);
                     if (subscription == null) {
-                        final Subscription newSubscription = 
createSubscription(user, mailbox);
+                        final Subscription newSubscription = 
createSubscription(session, mailbox);
                         mapper.save(newSubscription);
                     }
                 }
@@ -76,19 +76,19 @@ public abstract class StoreSubscriptionM
     /**
      * Create Subscription for the given user and mailbox
      * 
-     * @param user
+     * @param session
      * @param mailbox
      * @return subscription 
      */
-    protected abstract Subscription createSubscription(final User user, final 
String mailbox);
+    protected abstract Subscription createSubscription(final MailboxSession 
sonessi, final String mailbox);
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.imap.store.Subscriber#subscriptions(java.lang.String)
+     * @see 
org.apache.james.imap.store.Subscriber#subscriptions(org.apache.james.imap.mailbox.MailboxSession)
      */
-    public Collection<String> subscriptions(final User user) throws 
SubscriptionException {
-        final SubscriptionMapper mapper = createMapper(user);
-        final List<Subscription> subscriptions = 
mapper.findSubscriptionsForUser(user.getUserName());
+    public Collection<String> subscriptions(final MailboxSession session) 
throws SubscriptionException {
+        final SubscriptionMapper mapper = createMapper(session);
+        final List<Subscription> subscriptions = 
mapper.findSubscriptionsForUser(session.getUser().getUserName());
         final Collection<String> results = new HashSet<String>(INITIAL_SIZE);
         for (Subscription subscription:subscriptions) {
             results.add(subscription.getMailbox());
@@ -100,13 +100,13 @@ public abstract class StoreSubscriptionM
      * (non-Javadoc)
      * @see 
org.apache.james.imap.store.Subscriber#unsubscribe(java.lang.String, 
java.lang.String)
      */
-    public void unsubscribe(final User user, final String mailbox) throws 
SubscriptionException {
-        final SubscriptionMapper mapper = createMapper(user);
+    public void unsubscribe(final MailboxSession session, final String 
mailbox) throws SubscriptionException {
+        final SubscriptionMapper mapper = createMapper(session);
         try {
             mapper.execute(new TransactionalMapper.Transaction() {
 
                 public void run() throws MailboxException {
-                    final Subscription subscription = 
mapper.findFindMailboxSubscriptionForUser(user.getUserName(), mailbox);
+                    final Subscription subscription = 
mapper.findFindMailboxSubscriptionForUser(session.getUser().getUserName(), 
mailbox);
                     if (subscription != null) {
                         mapper.delete(subscription);
                     }
@@ -117,4 +117,6 @@ public abstract class StoreSubscriptionM
             throw (SubscriptionException) e;
         }
     }
+    
+    protected abstract void onLogout(MailboxSession session);
 }

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/Subscriber.java
 Sun Mar 14 19:24:38 2010
@@ -21,8 +21,8 @@ package org.apache.james.imap.store;
 
 import java.util.Collection;
 
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.SubscriptionException;
-import org.apache.james.imap.mailbox.MailboxSession.User;
 
 /**
  * Subscribes users.
@@ -30,28 +30,28 @@ import org.apache.james.imap.mailbox.Mai
 public interface Subscriber {
     
     /**
-     * Subscribes the named user to the given mailbox.
-     * @param user not null
+     * Subscribes the user in the session to the given mailbox.
+     * @param session not null
      * @param mailbox not null
      * @throws SubscriptionException when subscription fails
      */
-    public void subscribe(User user, String mailbox)
+    public void subscribe(MailboxSession session, String mailbox)
             throws SubscriptionException;
 
     /**
-     * Finds all subscriptions for the given user.
+     * Finds all subscriptions for the user in the session.
      * @param user not null
      * @return not null
      * @throws SubscriptionException when subscriptions cannot be read
      */
-    public Collection<String> subscriptions(User user) throws 
SubscriptionException;
+    public Collection<String> subscriptions(MailboxSession session) throws 
SubscriptionException;
 
     /**
-     * Unsubscribes the given user from the given mailbox.
-     * @param user not null
+     * Unsubscribes the user in the session from the given mailbox.
+     * @param session not null
      * @param mailbox not null
      * @throws SubscriptionException when subscriptions cannot be read
      */
-    public void unsubscribe(User user, String mailbox)
+    public void unsubscribe(MailboxSession session, String mailbox)
             throws SubscriptionException;
 }

Modified: 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
 (original)
+++ 
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/transaction/TransactionalMapper.java
 Sun Mar 14 19:24:38 2010
@@ -49,5 +49,10 @@ public interface TransactionalMapper {
          */
         public void run() throws MailboxException;
     }
+    
+    /**
+     * Destroy the mapper
+     */
+    public void destroy();
 
 }

Modified: 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=922931&r1=922930&r2=922931&view=diff
==============================================================================
--- 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 (original)
+++ 
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 Sun Mar 14 19:24:38 2010
@@ -382,16 +382,16 @@ public class TorqueMailboxManager implem
 
     public void subscribe(MailboxSession session, String mailbox)
             throws SubscriptionException {
-        subscriper.subscribe(session.getUser(), mailbox);
+        subscriper.subscribe(session, mailbox);
     }
 
     public Collection<String> subscriptions(MailboxSession session) throws 
SubscriptionException {
-        return subscriper.subscriptions(session.getUser());
+        return subscriper.subscriptions(session);
     }
 
     public void unsubscribe(MailboxSession session, String mailbox)
             throws SubscriptionException {
-        subscriper.unsubscribe(session.getUser(), mailbox);
+        subscriper.unsubscribe(session, mailbox);
     }
 
     public void addListener(String mailboxName, MailboxListener listener, 
MailboxSession session) throws MailboxException {



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

Reply via email to