Author: rdonkin
Date: Sat Jan  3 11:29:45 2009
New Revision: 731069

URL: http://svn.apache.org/viewvc?rev=731069&view=rev
Log:
Remove autocreate from API. Login tests for existing when creates when 
necessary.

Modified:
    
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
    
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
    
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
    
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
    
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

Modified: 
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
 (original)
+++ 
james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
 Sat Jan  3 11:29:45 2009
@@ -54,7 +54,7 @@
     public void setUp() throws Exception {
         super.setUp();
         mailboxManager.createMailbox(INBOX);
-        mailbox = mailboxManager.getMailbox(INBOX, false);
+        mailbox = mailboxManager.getMailbox(INBOX);
         mailboxSession = mailboxManager.createSession();
         collector = new MailboxListenerCollector();
         mailbox.addListener(collector);

Modified: 
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
 (original)
+++ 
james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
 Sat Jan  3 11:29:45 2009
@@ -65,17 +65,12 @@
         this.entityManagerFactory = entityManagerFactory;
     }
 
-    public org.apache.james.imap.mailbox.Mailbox getMailbox(String 
mailboxName, boolean autoCreate)
+    public org.apache.james.imap.mailbox.Mailbox getMailbox(String mailboxName)
             throws MailboxException {
-        return doGetMailbox(mailboxName, autoCreate);
+        return doGetMailbox(mailboxName);
     }
 
-    private JPAMailbox doGetMailbox(String mailboxName, boolean autoCreate)
-            throws MailboxException {
-        if (autoCreate && !existsMailbox(mailboxName)) {
-            getLog().info("autocreated mailbox  " + mailboxName);
-            createMailbox(mailboxName);
-        }
+    private JPAMailbox doGetMailbox(String mailboxName) throws 
MailboxException {
         try {
             synchronized (mailboxes) {
                 final MailboxMapper mapper = createMailboxMapper();
@@ -128,13 +123,13 @@
                     if (index > 0 && count++ > 1) {
                         final String mailbox = namespaceName
                                 .substring(0, index);
-                        if (!existsMailbox(mailbox)) {
+                        if (!mailboxExists(mailbox)) {
                             doCreate(mailbox);
                         }
                     }
                     index = namespaceName.indexOf(HIERARCHY_DELIMITER, 
++index);
                 }
-                if (existsMailbox(namespaceName)) {
+                if (mailboxExists(namespaceName)) {
                     throw new MailboxExistsException(namespaceName); 
                 } else {
                     doCreate(namespaceName);
@@ -186,7 +181,7 @@
         getLog().debug("renameMailbox " + from + " to " + to);
         try {
             synchronized (mailboxes) {
-                if (existsMailbox(to)) {
+                if (mailboxExists(to)) {
                     throw new MailboxExistsException(to);
                 }
                 
@@ -228,8 +223,8 @@
 
     public void copyMessages(MessageRange set, String from, String to,
             MailboxSession session) throws MailboxException {
-        JPAMailbox toMailbox = doGetMailbox(to, false);
-        JPAMailbox fromMailbox = doGetMailbox(from, false);
+        JPAMailbox toMailbox = doGetMailbox(to);
+        JPAMailbox fromMailbox = doGetMailbox(from);
         fromMailbox.copyTo(set, toMailbox, session);
     }
 
@@ -278,7 +273,7 @@
         // TODO implement subscriptions
     }
 
-    public boolean existsMailbox(String mailboxName)
+    public boolean mailboxExists(String mailboxName)
             throws MailboxException {
         try {
             synchronized (mailboxes) {

Modified: 
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
 (original)
+++ 
james/protocols/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
 Sat Jan  3 11:29:45 2009
@@ -77,16 +77,13 @@
      * 
      * @param mailboxName
      *            the name of the mailbox, not null
-     * @param autocreate
-     *            create this mailbox if it doesn't exist
      * @return <code>ImapMailboxSession</code>, not null
      * @throws MailboxException
      *             when the mailbox cannot be opened
      * @throws MailboxNotFoundException
      *             when the given mailbox does not exist
      */
-    Mailbox getMailbox(String mailboxName, boolean autocreate)
-            throws MailboxException;
+    Mailbox getMailbox(String mailboxName) throws MailboxException;
 
     /**
      * Creates a new mailbox. Any intermediary mailboxes missing from the
@@ -144,7 +141,7 @@
     ListResult[] list(MailboxExpression expression)
             throws MailboxException;
 
-    boolean existsMailbox(String mailboxName) throws MailboxException;
+    boolean mailboxExists(String mailboxName) throws MailboxException;
 
     /**
      * Creates a new session.

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/AbstractMailboxAwareProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -218,7 +218,7 @@
     private Mailbox getMailbox(final ImapSession session, final 
SelectedImapMailbox selected) throws MailboxException {
         final String fullMailboxName = buildFullName(session, 
selected.getName());
         final MailboxManager mailboxManager = getMailboxManager(session);
-        final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName, 
false);
+        final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
         return mailbox;
     }
 

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -177,7 +177,7 @@
     private void selectMailbox(String mailboxName, ImapSession session)
             throws MailboxException {
         final MailboxManager mailboxManager = getMailboxManager(session);
-        final Mailbox mailbox = mailboxManager.getMailbox(mailboxName, false);
+        final Mailbox mailbox = mailboxManager.getMailbox(mailboxName);
         final MailboxSession mailboxSession = ImapSessionUtils
                 .getMailboxSession(session);
 

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/AppendProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -73,7 +73,7 @@
 
             final String fullMailboxName = buildFullName(session, mailboxName);
             final MailboxManager mailboxManager = getMailboxManager(session);
-            final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName, 
false);
+            final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
             appendToMailbox(mimeMessage, datetime, session, tag, command,
                     mailbox, responder, fullMailboxName);
 

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/CopyProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -62,7 +62,7 @@
             final String fullMailboxName = buildFullName(session, mailboxName);
             final MailboxManager mailboxManager = getMailboxManager(session);
             final boolean mailboxExists = mailboxManager
-                    .existsMailbox(fullMailboxName);
+                    .mailboxExists(fullMailboxName);
             if (!mailboxExists) {
                 no(command, tag, responder,
                         HumanReadableTextKey.FAILURE_NO_SUCH_MAILBOX,

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/LoginProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -27,6 +27,7 @@
 import org.apache.james.api.imap.process.ImapProcessor;
 import org.apache.james.api.imap.process.ImapSession;
 import org.apache.james.imap.mailbox.MailboxException;
+import org.apache.james.imap.mailbox.MailboxExistsException;
 import org.apache.james.imap.mailbox.MailboxManager;
 import org.apache.james.imap.mailbox.MailboxManagerProvider;
 import org.apache.james.imap.mailbox.MailboxSession;
@@ -68,7 +69,17 @@
                         ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY,
                         mailboxSession);
                 ImapSessionUtils.setUserName(session, userid);
-                mailboxManager.getMailbox(buildFullName(session, 
MailboxManager.INBOX), true);
+                final String inboxName = buildFullName(session, 
MailboxManager.INBOX);
+                if (mailboxManager.mailboxExists(inboxName)) {
+                    getLog().debug("INBOX exists. No need to create it.");
+                } else {
+                    try {
+                        getLog().debug("INBOX does not exist. Creating it.");
+                        mailboxManager.createMailbox(inboxName);
+                    } catch (MailboxExistsException e) {
+                        getLog().debug("Mailbox created by concurrent call. 
Safe to ignore this exception.");
+                    }
+                }
                 okComplete(command, tag, responder);
             } else {
                 final Integer currentNumberOfFailures = (Integer) session

Modified: 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
 (original)
+++ 
james/protocols/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/imap4rev1/StatusProcessor.java
 Sat Jan  3 11:29:45 2009
@@ -67,8 +67,7 @@
             }
 
             final MailboxManager mailboxManager = getMailboxManager(session);
-            final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName,
-                    false);
+            final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName);
 
             final Long messages = messages(statusDataItems, mailboxSession,
                     mailbox);

Modified: 
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=731069&r1=731068&r2=731069&view=diff
==============================================================================
--- 
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 (original)
+++ 
james/protocols/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 Sat Jan  3 11:29:45 2009
@@ -71,17 +71,13 @@
         this.userManager = userManager;
     }
 
-    public Mailbox getMailbox(String mailboxName, boolean autoCreate)
+    public Mailbox getMailbox(String mailboxName)
             throws MailboxException {
-        return doGetMailbox(mailboxName, autoCreate);
+        return doGetMailbox(mailboxName);
     }
 
-    private TorqueMailbox doGetMailbox(String mailboxName, boolean autoCreate)
+    private TorqueMailbox doGetMailbox(String mailboxName)
             throws MailboxException {
-        if (autoCreate && !existsMailbox(mailboxName)) {
-            getLog().info("autocreated mailbox  " + mailboxName);
-            createMailbox(mailboxName);
-        }
         try {
             synchronized (mailboxes) {
                 MailboxRow mailboxRow = MailboxRowPeer
@@ -132,13 +128,13 @@
                     if (index > 0 && count++ > 1) {
                         final String mailbox = namespaceName
                                 .substring(0, index);
-                        if (!existsMailbox(mailbox)) {
+                        if (!mailboxExists(mailbox)) {
                             doCreate(mailbox);
                         }
                     }
                     index = namespaceName.indexOf(HIERARCHY_DELIMITER, 
++index);
                 }
-                if (existsMailbox(namespaceName)) {
+                if (mailboxExists(namespaceName)) {
                     throw new MailboxExistsException(namespaceName); 
                 } else {
                     doCreate(namespaceName);
@@ -186,7 +182,7 @@
         getLog().debug("renameMailbox " + from + " to " + to);
         try {
             synchronized (mailboxes) {
-                if (existsMailbox(to)) {
+                if (mailboxExists(to)) {
                     throw new MailboxExistsException(to);
                 }
                 // TODO put this into a serilizable transaction
@@ -227,8 +223,8 @@
 
     public void copyMessages(MessageRange set, String from, String to,
             MailboxSession session) throws MailboxException {
-        TorqueMailbox toMailbox = doGetMailbox(to, false);
-        TorqueMailbox fromMailbox = doGetMailbox(from, false);
+        TorqueMailbox toMailbox = doGetMailbox(to);
+        TorqueMailbox fromMailbox = doGetMailbox(from);
         fromMailbox.copyTo(set, toMailbox, session);
     }
 
@@ -278,7 +274,7 @@
         // TODO implement subscriptions
     }
 
-    public boolean existsMailbox(String mailboxName)
+    public boolean mailboxExists(String mailboxName)
             throws MailboxException {
         Criteria c = new Criteria();
         c.add(MailboxRowPeer.NAME, mailboxName);



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

Reply via email to