Author: rdonkin
Date: Wed May 30 13:18:59 2007
New Revision: 542924

URL: http://svn.apache.org/viewvc?view=rev&rev=542924
Log:
Factored coupling between ImapSession and MailboxManager into Processor. 
Unfortunately, separation of torque implementation into separate module meant 
that integration tests no longer function in the experimental module. As a 
temporary measure copied torque implementation into test module.

Added:
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/mailboxmanager/torque/
      - copied from r542886, 
james/server/sandbox/seda-imap-modular/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/
Modified:
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
    
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapHandler.java
 Wed May 30 13:18:59 2007
@@ -148,8 +148,7 @@
                     + theConfigData.getHelloName() + " ready");
 
             sessionEnded = false;
-            session = new ImapSessionImpl( 
theConfigData.getMailboxManagerProvider(),
-                                           this,
+            session = new ImapSessionImpl( this,
                                            
socket.getInetAddress().getHostName(),
                                            
socket.getInetAddress().getHostAddress());
             setupLogger(session);

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSession.java
 Wed May 30 13:18:59 2007
@@ -23,7 +23,6 @@
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.services.User;
 
 
@@ -111,6 +110,23 @@
      */
     void closeMailbox() throws MailboxManagerException;
 
-    MailboxManager getMailboxManager() throws MailboxManagerException;
-
+    /**
+     * Gets an attribute of this session by name.
+     * Implementations should ensure that access
+     * is thread safe. 
+     * @param key name of the key, not null
+     * @return <code>Object</code> value
+     * or null if this attribute has unvalued
+     */
+    public Object getAttribute(String key);
+    
+    /**
+     * Sets an attribute of this session by name.
+     * Implementations should ensure that access
+     * is thread safe. 
+     * @param key name of the key, not null
+     * @param value <code>Object</code> value 
+     * or null to set this attribute as unvalued
+     */
+    public void setAttribute(String key, Object value);
 }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
 Wed May 30 13:18:59 2007
@@ -20,6 +20,8 @@
 package org.apache.james.experimental.imapserver;
 
 
+import java.util.Map;
+
 import javax.mail.Flags;
 
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
@@ -30,10 +32,10 @@
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
-import org.apache.james.mailboxmanager.manager.MailboxManager;
-import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 import org.apache.james.services.User;
 
+import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
+
 /**
  * @version $Revision: 109034 $
  */
@@ -46,22 +48,18 @@
     private final String clientHostName;
     private final String clientAddress;
 
-    // TODO these shouldn't be in here - they can be provided directly to 
command components.
     private ImapHandlerInterface handler;
-    private MailboxManagerProvider mailboxManagerProvider;
     
-    private MailboxManager mailboxManager = null;
-    private User mailboxManagerUser = null;
+    private final Map attributesByKey;
     
-    public ImapSessionImpl( MailboxManagerProvider mailboxManagerProvider,
-                            ImapHandlerInterface handler,
+    public ImapSessionImpl( ImapHandlerInterface handler,
                             String clientHostName,
                             String clientAddress )
     {
-        this.mailboxManagerProvider = mailboxManagerProvider;
         this.handler = handler;
         this.clientHostName = clientHostName;
         this.clientAddress = clientAddress;
+        this.attributesByKey = new ConcurrentHashMap();
     }
 
     public void unsolicitedResponses( ImapResponse request, boolean useUid ) 
throws MailboxException {
@@ -182,21 +180,16 @@
     }
 
 
+    public Object getAttribute(String key) {
+        final Object result = attributesByKey.get(key);
+        return result;
+    }
 
-    public MailboxManager getMailboxManager() throws MailboxManagerException {
-        final boolean usersEqual;
-        if (mailboxManagerUser!=null) {
-            usersEqual=mailboxManagerUser.equals(user);
+    public void setAttribute(String key, Object value) {
+        if (value == null) {
+            attributesByKey.remove(key);
         } else {
-            usersEqual=(user==null);
-        }
-        if (mailboxManager==null || !usersEqual) {
-            if (mailboxManager!=null) {
-                mailboxManager.close();
-            }
-            
mailboxManager=mailboxManagerProvider.getMailboxManagerInstance(user);
-            mailboxManager.createInbox(user);
+            attributesByKey.put(key, value);
         }
-        return mailboxManager;
     }
 }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/base/AbstractMailboxAwareProcessor.java
 Wed May 30 13:18:59 2007
@@ -21,11 +21,16 @@
 import org.apache.james.experimental.imapserver.ImapSession;
 import org.apache.james.experimental.imapserver.processor.ImapProcessor;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 import org.apache.james.services.User;
 
 abstract public class AbstractMailboxAwareProcessor extends 
AbstractImapRequestProcessor {
 
+    // TODO: move into ImapConstants
+    public static final String MAILBOX_ATTRIBUTE_SESSION_KEY 
+        = "org.apache.james.api.imap.MAILBOX_ATTRIBUTE_SESSION_KEY";
+    
     private final MailboxManagerProvider mailboxManagerProvider;
     
     public AbstractMailboxAwareProcessor(final ImapProcessor next, 
@@ -40,5 +45,24 @@
             mailboxName = 
mailboxManagerProvider.getPersonalDefaultNamespace(user).getName()+HIERARCHY_DELIMITER+mailboxName;
         }
         return mailboxName;
+    }
+
+    public MailboxManager getMailboxManager( final ImapSession session ) 
throws MailboxManagerException {
+        // TODO: removed badly implemented and ineffective check that mailbox 
user matches current user
+        // TODO: add check into user login methods
+        MailboxManager result = (MailboxManager) session.getAttribute( 
MAILBOX_ATTRIBUTE_SESSION_KEY );
+        if (result == null) {
+            // TODO: handle null user
+            final User user = session.getUser();
+            result = mailboxManagerProvider.getMailboxManagerInstance(user);
+            result.createInbox(user);
+            // TODO: reconsider decision not to sunchronise
+            // TODO: mailbox creation is ATM an expensive operation
+            // TODO: so caching is required
+            // TODO: caching in the session seems like the wrong design 
decision, though
+            // TODO: the mailbox provider should perform any caching that is 
required
+            session.setAttribute( MAILBOX_ATTRIBUTE_SESSION_KEY, result );
+        }
+        return result;
     }
 }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractListingProcessor.java
 Wed May 30 13:18:59 2007
@@ -27,17 +27,20 @@
 import 
org.apache.james.experimental.imapserver.message.response.ImapResponseMessage;
 import 
org.apache.james.experimental.imapserver.message.response.imap4rev1.ListResponse;
 import org.apache.james.experimental.imapserver.processor.ImapProcessor;
-import 
org.apache.james.experimental.imapserver.processor.base.AbstractImapRequestProcessor;
+import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.ListResult;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.impl.ListResultImpl;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
-abstract class AbstractListingProcessor extends AbstractImapRequestProcessor {
+abstract class AbstractListingProcessor extends AbstractMailboxAwareProcessor {
        
-       public AbstractListingProcessor(final ImapProcessor next) {
-        super(next);
+       public AbstractListingProcessor(final ImapProcessor next, 
+            final MailboxManagerProvider mailboxManagerProvider) {
+        super(next, mailboxManagerProvider);
     }
 
     protected final ImapResponseMessage doProcess(final String 
baseReferenceName, final String mailboxPattern,
@@ -144,7 +147,9 @@
     protected final ListResult[] doList( ImapSession session, String base, 
String pattern, boolean subscribed ) throws MailboxException
     {
         try {
-            return session.getMailboxManager().list(base,pattern,false);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            final ListResult[] result = 
mailboxManager.list(base,pattern,false);
+            return result;
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);  
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
 Wed May 30 13:18:59 2007
@@ -33,6 +33,7 @@
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -68,7 +69,8 @@
        }
     
     private boolean selectMailbox(String mailboxName, ImapSession session, 
boolean readOnly) throws MailboxException, MailboxManagerException {
-        ImapMailboxSession mailbox = 
session.getMailboxManager().getImapMailboxSession(mailboxName);
+        final MailboxManager mailboxManager = getMailboxManager(session);
+        final ImapMailboxSession mailbox = 
mailboxManager.getImapMailboxSession(mailboxName);
 
         if ( !mailbox.isSelectable() ) {
             throw new MailboxException( "Nonselectable mailbox." );

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/AppendProcessor.java
 Wed May 30 13:18:59 2007
@@ -37,6 +37,7 @@
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 public class AppendProcessor extends AbstractMailboxAwareProcessor {
@@ -79,8 +80,8 @@
         ImapMailboxSession mailbox = null;
         try {
             mailboxName = buildFullName(session, mailboxName);
-            mailbox = session.getMailboxManager().getImapMailboxSession(
-                    mailboxName);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailbox = mailboxManager.getImapMailboxSession(mailboxName);
         } catch (MailboxManagerException mme) {
             MailboxException me = new MailboxException(mme);
             me.setResponseCode("TRYCREATE");

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CopyProcessor.java
 Wed May 30 13:18:59 2007
@@ -36,6 +36,7 @@
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -69,14 +70,15 @@
         ImapMailboxSession currentMailbox = session.getSelected().getMailbox();
         try {
             String fullMailboxName = buildFullName(session, mailboxName);
-            if (!session.getMailboxManager().existsMailbox(fullMailboxName)) {
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            if (!mailboxManager.existsMailbox(fullMailboxName)) {
                 MailboxException e=new MailboxException("Mailbox does not 
exists");
                 e.setResponseCode( "TRYCREATE" );
                 throw e;
             }
             for (int i = 0; i < idSet.length; i++) {
                 GeneralMessageSet 
messageSet=GeneralMessageSetImpl.range(idSet[i].getLowVal(),idSet[i].getHighVal(),useUids);
-                
session.getMailboxManager().copyMessages(currentMailbox,messageSet,fullMailboxName);
+                
mailboxManager.copyMessages(currentMailbox,messageSet,fullMailboxName);
             }
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/CreateProcessor.java
 Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
 import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -64,7 +65,8 @@
         try {
 
             final String fullMailboxName=buildFullName(session, mailboxName);
-            session.getMailboxManager().createMailbox(fullMailboxName );
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailboxManager.createMailbox( fullMailboxName );
         } catch (MailboxManagerException e) {
            throw new MailboxException(e);
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/DeleteProcessor.java
 Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
 import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -68,7 +69,8 @@
                     session.deselect();
                 }
             }
-            session.getMailboxManager().deleteMailbox(fullMailboxName);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailboxManager.deleteMailbox(fullMailboxName);
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/Imap4Rev1ProcessorFactory.java
 Wed May 30 13:18:59 2007
@@ -29,8 +29,8 @@
         final StoreProcessor storeProcessor = new 
StoreProcessor(appendProcessor);
         final NoopProcessor noopProcessor = new NoopProcessor(storeProcessor);
         final StatusProcessor statusProcessor = new 
StatusProcessor(noopProcessor, mailboxManagerProvider);
-        final LsubProcessor lsubProcessor = new LsubProcessor(statusProcessor);
-        final ListProcessor listProcessor = new ListProcessor(lsubProcessor);
+        final LsubProcessor lsubProcessor = new LsubProcessor(statusProcessor, 
mailboxManagerProvider);
+        final ListProcessor listProcessor = new ListProcessor(lsubProcessor, 
mailboxManagerProvider);
         final SearchProcessor searchProcessor = new 
SearchProcessor(listProcessor);
         final SelectProcessor selectProcessor = new 
SelectProcessor(searchProcessor, mailboxManagerProvider);
         final ImapProcessor result = new FetchProcessor(selectProcessor);

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/ListProcessor.java
 Wed May 30 13:18:59 2007
@@ -30,12 +30,14 @@
 import org.apache.james.experimental.imapserver.processor.ImapProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.ListResult;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
 public class ListProcessor extends AbstractListingProcessor {
        
-       public ListProcessor(final ImapProcessor next) {
-        super(next);
+       public ListProcessor(final ImapProcessor next, 
+            final MailboxManagerProvider mailboxManagerProvider) {
+        super(next, mailboxManagerProvider);
     }
 
     protected boolean isAcceptable(ImapMessage message) {

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/LsubProcessor.java
 Wed May 30 13:18:59 2007
@@ -30,12 +30,14 @@
 import org.apache.james.experimental.imapserver.processor.ImapProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.ListResult;
+import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
 public class LsubProcessor extends AbstractListingProcessor {
        
-       public LsubProcessor(final ImapProcessor next) {
-        super(next);
+       public LsubProcessor(final ImapProcessor next, 
+            final MailboxManagerProvider mailboxManagerProvider) {
+        super(next, mailboxManagerProvider);
     }
 
     protected boolean isAcceptable(ImapMessage message) {

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/RenameProcessor.java
 Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
 import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -64,7 +65,8 @@
         try {
             final String fullExistingName=buildFullName(session, existingName);
             final String fullNewName=buildFullName(session, newName);
-            session.getMailboxManager().renameMailbox( fullExistingName, 
fullNewName );
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailboxManager.renameMailbox( fullExistingName, fullNewName );
         } catch (MailboxManagerException e) {
            throw new MailboxException(e);
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/StatusProcessor.java
 Wed May 30 13:18:59 2007
@@ -36,6 +36,7 @@
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -79,7 +80,8 @@
                 logger.debug("Status called on mailbox named " + mailboxName + 
" (" + fullMailboxName + ")"); 
             }
             
-            ImapMailboxSession mailbox = 
session.getMailboxManager().getImapMailboxSession(fullMailboxName);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            final ImapMailboxSession mailbox = 
mailboxManager.getImapMailboxSession(fullMailboxName);
             
             if (statusDataItems.isMessages()) {
                 buffer.append(ImapConstants.STATUS_MESSAGES);

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/SubscribeProcessor.java
 Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
 import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -62,7 +63,8 @@
                        ImapSession session, String tag, ImapCommand command) 
throws MailboxException, AuthorizationException, ProtocolException {
         try {
             final String fullMailboxName = buildFullName(session, mailboxName);
-            session.getMailboxManager().setSubscription(fullMailboxName,true);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailboxManager.setSubscription(fullMailboxName,true);
         } catch (MailboxManagerException e) {
            throw new MailboxException(e);
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/processor/imap4rev1/UnsubscribeProcessor.java
 Wed May 30 13:18:59 2007
@@ -32,6 +32,7 @@
 import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
 
@@ -62,7 +63,8 @@
                        ImapSession session, String tag, ImapCommand command) 
throws MailboxException, AuthorizationException, ProtocolException {
         try {
             final String fullMailboxName=buildFullName(session, mailboxName);
-            session.getMailboxManager().setSubscription(fullMailboxName,false);
+            final MailboxManager mailboxManager = getMailboxManager(session);
+            mailboxManager.setSubscription(fullMailboxName,false);
         } catch (MailboxManagerException e) {
             throw new MailboxException(e);
         }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/MockImapSession.java
 Wed May 30 13:18:59 2007
@@ -1,5 +1,8 @@
 package org.apache.james.experimental.imapserver;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.apache.james.api.imap.ImapSessionState;
 import org.apache.james.experimental.imapserver.ImapResponse;
 import org.apache.james.experimental.imapserver.ImapSession;
@@ -16,6 +19,8 @@
     public String clientHostName = "localhost";
     public String clientIP = "127.0.0.1";
     
+    public Map attributes = new HashMap();
+    
     public String buildFullName(String mailboxName)
             throws MailboxManagerException {
         return mailboxName;
@@ -61,11 +66,6 @@
         return null;
     }
 
-    public UsersRepository getUsers() {
-        // TODO: mock 
-        return null;
-    }
-
     public void setAuthenticated(User user) {
 
     }
@@ -80,5 +80,13 @@
 
     public void unsolicitedResponses(ImapResponse request,
             boolean omitExpunged, boolean useUid) throws MailboxException {
+    }
+
+    public Object getAttribute(String key) {
+        return attributes.get(key);
+    }
+
+    public void setAttribute(String key, Object value) {
+        attributes.put(key, value);
     }
 }

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/commands/AbstractCommandTest.java
 Wed May 30 13:18:59 2007
@@ -27,7 +27,9 @@
 import org.apache.james.experimental.imapserver.ImapRequestHandler;
 import org.apache.james.experimental.imapserver.ImapSession;
 import org.apache.james.experimental.imapserver.StandardFactory;
+import 
org.apache.james.experimental.imapserver.processor.base.AbstractMailboxAwareProcessor;
 import 
org.apache.james.experimental.imapserver.processor.main.DefaultImapProcessorFactory;
+import org.apache.james.imapserver.codec.decode.base.AbstractImapCommandParser;
 import org.apache.james.mailboxmanager.Namespace;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
@@ -74,7 +76,8 @@
     }
     
     protected void setUpMailboxManager() {
-        
mockSession.expects(atLeastOnce()).method("getMailboxManager").withNoArguments().will(returnValue(mockMailboxManager.proxy()));
+        mockSession.expects(atLeastOnce()).method("getAttribute")
+        
.with(eq(AbstractMailboxAwareProcessor.MAILBOX_ATTRIBUTE_SESSION_KEY)).will(returnValue(mockMailboxManager.proxy()));
     }
     
     protected void setUpNamespace(String userDefaultNamespace) {

Modified: 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
URL: 
http://svn.apache.org/viewvc/james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java?view=diff&rev=542924&r1=542923&r2=542924
==============================================================================
--- 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
 (original)
+++ 
james/server/sandbox/seda-imap-modular/experimental-seda-imap-function/src/test/java/org/apache/james/experimental/imapserver/handler/session/AbstractSessionTest.java
 Wed May 30 13:18:59 2007
@@ -79,7 +79,7 @@
         
         MockImapHandlerConfigurationData theConfigData = new 
MockImapHandlerConfigurationData();
         theConfigData.getMailboxManagerProvider().deleteEverything();
-        session = new 
ImapSessionImpl(theConfigData.getMailboxManagerProvider(),
+        session = new ImapSessionImpl(
                 new MockImapHandler(),
                 HOST_NAME, HOST_ADDRESS);
         ((LogEnabled)session).enableLogging(new MockLogger());



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

Reply via email to