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

svn commit: r960654 - /james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

Author: norman
Date: Mon Jul  5 18:10:07 2010
New Revision: 960654

URL: http://svn.apache.org/viewvc?rev=960654&view=rev
Log:
Don't allow to specify the delimiter, we use "." and not allow to override this. (IMAP-179)

Modified:
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

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=960654&r1=960653&r2=960654&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 Mon Jul  5 18:10:07 2010
@@ -71,22 +71,15 @@ public class TorqueMailboxManager implem
 
     private final Map<String, TorqueMailbox> mailboxes;
 
-    private final char delimiter;
+    private final Authenticator authenticator;
 
-	private final Authenticator authenticator;
-
-	private final Subscriber subscriper;
+    private final Subscriber subscriper;
     
     public TorqueMailboxManager(final Authenticator authenticator, final Subscriber subscriper) {
-        this(authenticator, subscriper, '.');
-    }
-    
-    public TorqueMailboxManager(final Authenticator authenticator, final Subscriber subscriper, final char delimiter) {
         this.lock = new ReentrantReadWriteLock();
         mailboxes = new HashMap<String, TorqueMailbox>();
         this.authenticator = authenticator;
         this.subscriper = subscriper;
-        this.delimiter = delimiter;
     }
 
     public Mailbox getMailbox(String mailboxName, MailboxSession session)
@@ -128,14 +121,14 @@ public class TorqueMailboxManager implem
         final int length = namespaceName.length();
         if (length == 0) {
             getLog().warn("Ignoring mailbox with empty name");
-        } else if (namespaceName.charAt(length - 1) == delimiter) {
+        } else if (namespaceName.charAt(length - 1) == MailboxConstants.DEFAULT_DELIMITER) {
             createMailbox(namespaceName.substring(0, length - 1), mailboxSession);
         } else {
             synchronized (mailboxes) {
                 // Create root first
                 // If any creation fails then mailbox will not be created
                 // TODO: transaction
-                int index = namespaceName.indexOf(delimiter);
+                int index = namespaceName.indexOf(MailboxConstants.DEFAULT_DELIMITER);
                 int count = 0;
                 while (index >= 0) {
                     // Until explicit namespace support is added,
@@ -149,7 +142,7 @@ public class TorqueMailboxManager implem
                             doCreate(mailbox);
                         }
                     }
-                    index = namespaceName.indexOf(delimiter, ++index);
+                    index = namespaceName.indexOf(MailboxConstants.DEFAULT_DELIMITER, ++index);
                 }
                 if (mailboxExists(namespaceName, mailboxSession)) {
                     throw new MailboxExistsException(namespaceName); 
@@ -219,7 +212,7 @@ public class TorqueMailboxManager implem
                 // rename submailbox
                 Criteria c = new Criteria();
                 c.add(MailboxRowPeer.NAME,
-                        (Object) (from + delimiter + "%"),
+                        (Object) (from + MailboxConstants.DEFAULT_DELIMITER + "%"),
                         Criteria.LIKE);
                 List l = MailboxRowPeer.doSelect(c);
                 for (Iterator iter = l.iterator(); iter.hasNext();) {
@@ -268,7 +261,7 @@ public class TorqueMailboxManager implem
         }
 
         final String search = mailboxExpression.getCombinedName(
-                delimiter).replace(freeWildcard, SQL_WILDCARD_CHAR)
+                MailboxConstants.DEFAULT_DELIMITER).replace(freeWildcard, SQL_WILDCARD_CHAR)
                 .replace(localWildcard, SQL_WILDCARD_CHAR);
 
         Criteria criteria = new Criteria();
@@ -281,7 +274,7 @@ public class TorqueMailboxManager implem
                 final String name = mailboxRow.getName();
                 if (name.startsWith(base)) {
                     final String match = name.substring(baseLength);
-                    if (mailboxExpression.isExpressionMatch(match, delimiter)) {
+                    if (mailboxExpression.isExpressionMatch(match, MailboxConstants.DEFAULT_DELIMITER)) {
                         final MailboxMetaData.Children inferiors; 
                         if (hasChildren(name)) {
                             inferiors = MailboxMetaData.Children.HAS_CHILDREN;
@@ -309,7 +302,7 @@ public class TorqueMailboxManager implem
     @SuppressWarnings("unchecked")
     private boolean hasChildren(String name) throws TorqueException {
         final Criteria criteria = new Criteria();
-        criteria.add(MailboxRowPeer.NAME, (Object)(name + delimiter + SQL_WILDCARD_CHAR), Criteria.LIKE);
+        criteria.add(MailboxRowPeer.NAME, (Object)(name + MailboxConstants.DEFAULT_DELIMITER + SQL_WILDCARD_CHAR), Criteria.LIKE);
         final List mailboxes = MailboxRowPeer.doSelect(criteria);
         return !mailboxes.isEmpty();
     }
@@ -363,14 +356,14 @@ public class TorqueMailboxManager implem
     }
 
     private MailboxSession createSession(String userName, String password, Log log) {
-        return new SimpleMailboxSession(random.nextLong(), userName, password, log, delimiter, new ArrayList<Locale>());
+        return new SimpleMailboxSession(random.nextLong(), userName, password, log, MailboxConstants.DEFAULT_DELIMITER, new ArrayList<Locale>());
     }
 
     public String resolve(final String userName, String mailboxPath) {
-        if (mailboxPath.charAt(0) != delimiter) {
-            mailboxPath = delimiter + mailboxPath;
+        if (mailboxPath.charAt(0) != MailboxConstants.DEFAULT_DELIMITER) {
+            mailboxPath = MailboxConstants.DEFAULT_DELIMITER + mailboxPath;
         }
-        final String result = MailboxConstants.USER_NAMESPACE + delimiter + userName
+        final String result = MailboxConstants.USER_NAMESPACE + MailboxConstants.DEFAULT_DELIMITER + userName
                 + mailboxPath;
         return result;
     }
@@ -428,8 +421,8 @@ public class TorqueMailboxManager implem
      * (non-Javadoc)
      * @see org.apache.james.imap.mailbox.MailboxManager#getDelimiter()
      */
-    public char getDelimiter() {
-        return delimiter;
+    public final char getDelimiter() {
+        return MailboxConstants.DEFAULT_DELIMITER;
     }
 
 }



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