You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2011/05/13 20:56:29 UTC

svn commit: r1102863 - in /james/mailbox/trunk: api/src/main/java/org/apache/james/mailbox/ api/src/test/java/org/apache/james/mailbox/ maildir/src/main/java/org/apache/james/mailbox/maildir/ maildir/src/main/java/org/apache/james/mailbox/maildir/mail/...

Author: norman
Date: Fri May 13 18:56:28 2011
New Revision: 1102863

URL: http://svn.apache.org/viewvc?rev=1102863&view=rev
Log:
start some work related to namespace handling. See MAILBOX-11

Modified:
    james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxPath.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java
    james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
    james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
    james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java

Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxPath.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxPath.java?rev=1102863&r1=1102862&r2=1102863&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxPath.java (original)
+++ james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxPath.java Fri May 13 18:56:28 2011
@@ -31,6 +31,8 @@ public class MailboxPath {
     private String user;
     private String name;
 
+
+    
     public MailboxPath(String namespace, String user, String name) {
         this.namespace = namespace;
         this.user = user;
@@ -178,16 +180,49 @@ public class MailboxPath {
             result = PRIME * result + getNamespace().hashCode();
         return result;
     }
+    
+    /**
+     * Return the full name of the {@link MailboxPath}, which is constructed via the {@link #namespace} and {@link #name}
+     * 
+     * @param delimiter
+     * @return fullName
+     */
+    public String getFullName(char delimiter) {
+        return namespace + delimiter + name;
+    }
 
     /**
      * Return a {@link MailboxPath} which represent the INBOX of the given
-     * username
+     * session
      * 
-     * @param username
+     * @param session
      * @return inbox
      */
-    public static MailboxPath inbox(String username) {
-        return new MailboxPath(MailboxConstants.USER_NAMESPACE, username, MailboxConstants.INBOX);
+    public static MailboxPath inbox(MailboxSession session) {
+        return new MailboxPath(session.getPersonalSpace(), session.getUser().getUserName(), MailboxConstants.INBOX);
+    }
+    
+    /**
+     * Create a {@link MailboxPath} by parsing the given full mailboxname (which included the namespace)
+     * 
+     * @param session
+     * @param fullmailboxname
+     * @return path
+     */
+    public static MailboxPath parse(MailboxSession session, String fullmailboxname) {
+        char delimiter = session.getPathDelimiter();
+        int i = fullmailboxname.indexOf(delimiter);
+        String namespace = fullmailboxname.substring(0, i);
+        String mailbox = fullmailboxname.substring(i + 1, fullmailboxname.length());
+        String username = null;
+        if (namespace == null || namespace.trim().equals("")) {
+            namespace = MailboxConstants.USER_NAMESPACE;
+        } 
+        if (namespace.equals(session.getPersonalSpace())) {
+            username = session.getUser().getUserName();
+        }
+        return new MailboxPath(namespace, username, mailbox);
+
     }
 
 }

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java?rev=1102863&r1=1102862&r2=1102863&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java Fri May 13 18:56:28 2011
@@ -43,7 +43,7 @@ public abstract class AbstractMailboxMan
         manager.startProcessingRequest(session);
         
         
-        MailboxPath inbox = MailboxPath.inbox(USER1);
+        MailboxPath inbox = MailboxPath.inbox(session);
         Assert.assertFalse(manager.mailboxExists(inbox, session));
         
         manager.createMailbox(inbox, session);

Modified: james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java?rev=1102863&r1=1102862&r2=1102863&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java (original)
+++ james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirMailboxSessionMapperFactory.java Fri May 13 18:56:28 2011
@@ -41,7 +41,7 @@ public class MaildirMailboxSessionMapper
     @Override
     protected MailboxMapper<Integer> createMailboxMapper(MailboxSession session)
             throws MailboxException {
-        return new MaildirMailboxMapper(store);
+        return new MaildirMailboxMapper(store, session);
     }
 
     @Override

Modified: james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java?rev=1102863&r1=1102862&r2=1102863&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java (original)
+++ james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java Fri May 13 18:56:28 2011
@@ -32,6 +32,7 @@ import org.apache.james.mailbox.MailboxE
 import org.apache.james.mailbox.MailboxExistsException;
 import org.apache.james.mailbox.MailboxNotFoundException;
 import org.apache.james.mailbox.MailboxPath;
+import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.maildir.MaildirFolder;
 import org.apache.james.mailbox.maildir.MaildirMessageName;
 import org.apache.james.mailbox.maildir.MaildirStore;
@@ -51,9 +52,12 @@ public class MaildirMailboxMapper extend
      * A request-scoped list of mailboxes in order to refer to them via id
      */
     private ArrayList<Mailbox<Integer>> mailboxCache = new ArrayList<Mailbox<Integer>>();
+
+    private final MailboxSession session;
     
-    public MaildirMailboxMapper(MaildirStore maildirStore) {
+    public MaildirMailboxMapper(MaildirStore maildirStore, MailboxSession session) {
         this.maildirStore = maildirStore;
+        this.session = session;
     }
 
     /*
@@ -259,7 +263,7 @@ public class MaildirMailboxMapper extend
             }
             
             // Special case for INBOX: Let's use the user's folder.
-            MailboxPath inboxMailboxPath = MailboxPath.inbox(userName);
+            MailboxPath inboxMailboxPath = MailboxPath.inbox(session);
             mailboxList.add(maildirStore.loadMailbox(inboxMailboxPath));
             
             // List all INBOX sub folders.

Modified: james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java?rev=1102863&r1=1102862&r2=1102863&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java (original)
+++ james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java Fri May 13 18:56:28 2011
@@ -121,7 +121,7 @@ public class MaildirMailboxManagerTest e
             manager.createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, user, "INBOX.testfolder"), session);
             
             // this threw NPE
-            manager.getMailbox(MailboxPath.inbox(user), session).appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), session, false, new Flags());
+            manager.getMailbox(MailboxPath.inbox(session), session).appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), session, false, new Flags());
 
         }
 



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