Author: rdonkin
Date: Tue Jun 19 15:01:37 2007
New Revision: 548863

URL: http://svn.apache.org/viewvc?view=rev&rev=548863
Log:
Decoupled dependency on User from the ImapSession interface.

Added:
    
james/server/trunk/core-library/src/main/java/org/apache/james/services/User.java
      - copied unchanged from r548856, 
james/server/trunk/imap-api/src/main/java/org/apache/james/services/User.java
Removed:
    
james/server/trunk/imap-api/src/main/java/org/apache/james/services/User.java
Modified:
    
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
    
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
    
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java

Modified: 
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
 (original)
+++ 
james/server/trunk/experimental-seda-imap-function/src/main/java/org/apache/james/experimental/imapserver/ImapSessionImpl.java
 Tue Jun 19 15:01:37 2007
@@ -29,7 +29,6 @@
 import org.apache.james.api.imap.ImapSessionState;
 import org.apache.james.api.imap.process.ImapSession;
 import org.apache.james.api.imap.process.SelectedImapMailbox;
-import org.apache.james.services.User;
 
 import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
 
@@ -39,7 +38,6 @@
 public final class ImapSessionImpl extends AbstractLogEnabled implements 
ImapSession, ImapConstants
 {
     private ImapSessionState state = ImapSessionState.NON_AUTHENTICATED;
-    private User user = null;
     private SelectedImapMailbox selectedMailbox = null;
 
     private final String clientHostName;
@@ -95,15 +93,9 @@
         return clientAddress;
     }
 
-    public void authenticated( User user )
+    public void authenticated( )
     {
         this.state = ImapSessionState.AUTHENTICATED;
-        this.user = user;
-    }
-
-    public User getUser()
-    {
-        return this.user;
     }
 
     public void deselect()

Modified: 
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
 (original)
+++ 
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/ImapSession.java
 Tue Jun 19 15:01:37 2007
@@ -22,7 +22,6 @@
 import java.util.List;
 
 import org.apache.james.api.imap.ImapSessionState;
-import org.apache.james.services.User;
 
 
 /**
@@ -74,19 +73,9 @@
     ImapSessionState getState();
 
     /**
-     * Moves the session into [EMAIL PROTECTED] 
ImapSessionState#AUTHENTICATED} state with
-     * the supplied user.
-     * @param user The user who is authenticated for this session.
+     * Moves the session into [EMAIL PROTECTED] 
ImapSessionState#AUTHENTICATED} state.
      */
-    void authenticated( User user );
-
-    /**
-     * Provides the authenticated user for this session, or <code>null</code> 
if this
-     * session is not in [EMAIL PROTECTED] ImapSessionState#AUTHENTICATED} or
-     * [EMAIL PROTECTED] ImapSessionState#SELECTED} state.
-     * @return The user authenticated for this session
-     */
-    User getUser();
+    void authenticated();
 
     /**
      * Moves this session into [EMAIL PROTECTED] ImapSessionState#SELECTED} 
state and sets the

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/AbstractMailboxAwareProcessor.java
 Tue Jun 19 15:01:37 2007
@@ -39,7 +39,7 @@
     }
     
     public String buildFullName(final ImapSession session, String mailboxName) 
throws MailboxManagerException {
-        User user = session.getUser();
+        User user = ImapSessionUtils.getUser(session);
         if (!mailboxName.startsWith(NAMESPACE_PREFIX)) {
             mailboxName = 
mailboxManagerProvider.getPersonalDefaultNamespace(user).getName()+HIERARCHY_DELIMITER+mailboxName;
         }
@@ -52,7 +52,7 @@
         MailboxManager result = (MailboxManager) session.getAttribute( 
ImapSessionUtils.MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY );
         if (result == null) {
             // TODO: handle null user
-            final User user = session.getUser();
+            final User user = ImapSessionUtils.getUser(session);
             result = mailboxManagerProvider.getMailboxManagerInstance(user);
             result.createInbox(user);
             // TODO: reconsider decision not to sunchronise

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/ImapSessionUtils.java
 Tue Jun 19 15:01:37 2007
@@ -24,9 +24,12 @@
 import org.apache.james.api.imap.process.ImapSession;
 import org.apache.james.imap.message.response.base.AbstractImapResponse;
 import org.apache.james.mailboxmanager.mailbox.ImapMailboxSession;
+import org.apache.james.services.User;
 
 public class ImapSessionUtils {
     
+    public static final String MAILBOX_USER_ATTRIBUTE_SESSION_KEY 
+        = "org.apache.james.api.imap.MAILBOX_USER_ATTRIBUTE_SESSION_KEY";
     public static final String MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY 
         = "org.apache.james.api.imap.MAILBOX_MANAGER_ATTRIBUTE_SESSION_KEY";
     public static final String SELECTED_MAILBOX_ATTRIBUTE_SESSION_KEY 
@@ -41,6 +44,15 @@
         ImapMailboxSession result 
             = (ImapMailboxSession) 
session.getAttribute(SELECTED_MAILBOX_ATTRIBUTE_SESSION_KEY);
         return result;
+    }
+
+    public static User getUser( final ImapSession session ) {
+        final User result = (User) 
session.getAttribute(MAILBOX_USER_ATTRIBUTE_SESSION_KEY);
+        return result;
+    }
+    
+    public static void setUser( final ImapSession session, final User user) {
+        session.setAttribute(MAILBOX_USER_ATTRIBUTE_SESSION_KEY, user);
     }
 
 }

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractListingProcessor.java
 Tue Jun 19 15:01:37 2007
@@ -35,6 +35,7 @@
 import org.apache.james.mailboxmanager.impl.ListResultImpl;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
+import org.apache.james.services.User;
 
 
 abstract class AbstractListingProcessor extends AbstractMailboxAwareProcessor {
@@ -54,8 +55,9 @@
 
         ListResult[] listResults;
 
-        String personalNamespace = ImapConstants.USER_NAMESPACE + 
ImapConstants.HIERARCHY_DELIMITER_CHAR +
-        session.getUser().getUserName();
+        final User user = ImapSessionUtils.getUser(session);
+        String personalNamespace = ImapConstants.USER_NAMESPACE + 
ImapConstants.HIERARCHY_DELIMITER_CHAR 
+                + user.getUserName();
 
         if ( mailboxPattern.length() == 0 ) {
             // An empty mailboxPattern signifies a request for the hierarchy 
delimiter

Modified: 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java?view=diff&rev=548863&r1=548862&r2=548863
==============================================================================
--- 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
 (original)
+++ 
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/LoginProcessor.java
 Tue Jun 19 15:01:37 2007
@@ -31,6 +31,7 @@
 import 
org.apache.james.imap.message.response.imap4rev1.legacy.CommandFailedResponse;
 import org.apache.james.imapserver.processor.base.AbstractImapRequestProcessor;
 import org.apache.james.imapserver.processor.base.AuthorizationException;
+import org.apache.james.imapserver.processor.base.ImapSessionUtils;
 import org.apache.james.imapserver.store.MailboxException;
 import org.apache.james.services.User;
 import org.apache.james.services.UsersRepository;
@@ -67,7 +68,8 @@
         final ImapResponseMessage result;
         if ( users.test( userid, password ) ) {
             User user = users.getUserByName( userid );
-            session.authenticated( user );
+            session.authenticated();
+            ImapSessionUtils.setUser( session, user ); 
             result = new CommandCompleteResponse(command, tag);
         }
         else {



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

Reply via email to