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/29 10:20:02 UTC

svn commit: r980356 - in /james/imap/trunk: mailbox/src/main/java/org/apache/james/imap/mailbox/ processor/src/main/java/org/apache/james/imap/processor/ store/src/main/java/org/apache/james/imap/store/ torque/src/main/java/org/apache/james/mailboxmana...

Author: norman
Date: Thu Jul 29 08:20:01 2010
New Revision: 980356

URL: http://svn.apache.org/viewvc?rev=980356&view=rev
Log:
use MailboxSession as parameter for Mailbox.isWritable(...). This will be helpful later on shared mailboxes where the acl can be different per user

Modified:
    james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/Mailbox.java
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.java
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java

Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/Mailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/Mailbox.java?rev=980356&r1=980355&r2=980356&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/Mailbox.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/Mailbox.java Thu Jul 29 08:20:01 2010
@@ -51,9 +51,10 @@ public interface Mailbox {
     /**
      * Return if the Mailbox is writable
      * 
+     * @param session
      * @return writable
      */
-    boolean isWriteable();
+    boolean isWriteable(MailboxSession session);
 
     /**
      * Searches for messages matching the given query.

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java?rev=980356&r1=980355&r2=980356&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java Thu Jul 29 08:20:01 2010
@@ -48,10 +48,10 @@ public class CloseProcessor extends Abst
             String tag, ImapCommand command, Responder responder) {
         try {
             Mailbox mailbox = getSelectedMailbox(session);
-            if (mailbox.isWriteable()) {
+            final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
+            if (mailbox.isWriteable(mailboxSession)) {
                 
-                    final MailboxSession mailboxSession = ImapSessionUtils
-                            .getMailboxSession(session);
+
                     mailbox.expunge(MessageRange.all(), mailboxSession);
                     session.deselect();
                     // TODO: the following comment was present in the code before

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java?rev=980356&r1=980355&r2=980356&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java Thu Jul 29 08:20:01 2010
@@ -32,6 +32,7 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.mailbox.Mailbox;
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxManager;
+import org.apache.james.imap.mailbox.MailboxSession;
 import org.apache.james.imap.mailbox.MessageRange;
 import org.apache.james.imap.message.request.ExpungeRequest;
 import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -52,19 +53,18 @@ public class ExpungeProcessor extends Ab
             String tag, ImapCommand command, Responder responder) {
         try {
             final Mailbox mailbox = getSelectedMailbox(session);
-            if (!mailbox.isWriteable()) {
+            final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
+            
+            if (!mailbox.isWriteable(mailboxSession)) {
                 no(command, tag, responder,
                         HumanReadableText.MAILBOX_IS_READ_ONLY);
             } else {
-                final Iterator<Long> it = mailbox.expunge(MessageRange.all(),
-                        ImapSessionUtils
-                        .getMailboxSession(session));
-                final SelectedMailbox mailboxSession = session
-                .getSelected();
+                final Iterator<Long> it = mailbox.expunge(MessageRange.all(), mailboxSession);
+                final SelectedMailbox selected = session.getSelected();
                 if (mailboxSession != null) {
                     while (it.hasNext()) {
                         final long uid = it.next();
-                        mailboxSession.removeRecent(uid);
+                        selected.removeRecent(uid);
                     }
                 }
                 unsolicitedResponses(session, responder, false);

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.java?rev=980356&r1=980355&r2=980356&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.java Thu Jul 29 08:20:01 2010
@@ -575,7 +575,7 @@ public abstract class StoreMessageManage
     /**
      * This mailbox is writable
      */
-    public boolean isWriteable() {
+    public boolean isWriteable(MailboxSession session) {
         return true;
     }
 
@@ -648,6 +648,6 @@ public abstract class StoreMessageManage
                 unseenCount = 0;
                 break;
         }
-        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount, unseenCount, firstUnseen, isWriteable());
+        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount, unseenCount, firstUnseen, isWriteable(mailboxSession));
     }
 }
\ No newline at end of file

Modified: james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?rev=980356&r1=980355&r2=980356&view=diff
==============================================================================
--- james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java (original)
+++ james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java Thu Jul 29 08:20:01 2010
@@ -713,7 +713,11 @@ public class TorqueMailbox implements Ma
         }
     }
 
-    public boolean isWriteable() {
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.imap.mailbox.Mailbox#isWriteable(org.apache.james.imap.mailbox.MailboxSession)
+     */
+    public boolean isWriteable(MailboxSession session) {
         return true;
     }
 
@@ -850,6 +854,6 @@ public class TorqueMailbox implements Ma
             break;
         }
 
-        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount, unseenCount, firstUnseen, isWriteable());
+        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount, unseenCount, firstUnseen, isWriteable(mailboxSession));
     }
 }



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