Author: rdonkin
Date: Wed May 13 15:50:23 2009
New Revision: 774410
URL: http://svn.apache.org/viewvc?rev=774410&view=rev
Log:
Add logout method for Mailbox implementations and call from Logout. IMAP-84
https://issues.apache.org/jira/browse/IMAP-84
Modified:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
Modified:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java?rev=774410&r1=774409&r2=774410&view=diff
==============================================================================
---
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
(original)
+++
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxManager.java
Wed May 13 15:50:23 2009
@@ -171,6 +171,22 @@
* @throws MailboxException when the creation fails for other reasons
*/
MailboxSession login(String userid, String passwd, Log log) throws
BadCredentialsException, MailboxException;
+
+ /**
+ * <p>Logs the session out, freeing any resources.
+ * Clients who open session should make best efforts to call this
+ * when the session is closed.
+ * </p>
+ * <p>
+ * Note that clients may not always be able to call logout (whether forced
or not).
+ * Mailboxes that create sessions which are expensive to maintain
+ * <code>MUST</code> retain a reference and periodically check {...@link
MailboxSession#isOpen()}.
+ * </p>
+ * @param session not null
+ * @param force true when the session logout is forced by premature
connection termination
+ * @throws MailboxException when logout fails
+ */
+ void logout(MailboxSession session, boolean force) throws MailboxException;
/**
* Subscribes the user to the given mailbox.
Modified:
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java?rev=774410&r1=774409&r2=774410&view=diff
==============================================================================
---
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
(original)
+++
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
Wed May 13 15:50:23 2009
@@ -25,8 +25,11 @@
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
+import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxManagerProvider;
+import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.message.request.LogoutRequest;
+import org.apache.james.imap.processor.base.ImapSessionUtils;
public class LogoutProcessor extends AbstractMailboxProcessor {
@@ -41,8 +44,14 @@
protected void doProcess(ImapRequest message, ImapSession session,
String tag, ImapCommand command, Responder responder) {
- session.logout();
- bye(responder);
- okComplete(command, tag, responder);
+ final MailboxSession mailboxSession =
ImapSessionUtils.getMailboxSession(session);
+ try {
+ getMailboxManager().logout(mailboxSession, false);
+ session.logout();
+ bye(responder);
+ okComplete(command, tag, responder);
+ } catch (MailboxException e) {
+ no(command, tag, responder, e, session);
+ }
}
}
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java?rev=774410&r1=774409&r2=774410&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
Wed May 13 15:50:23 2009
@@ -350,5 +350,7 @@
}
}
-
+ public void logout(MailboxSession session, boolean force) throws
MailboxException {
+ // fine
+ }
}
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=774410&r1=774409&r2=774410&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
Wed May 13 15:50:23 2009
@@ -399,4 +399,8 @@
}
}
+ public void logout(MailboxSession session, boolean force) throws
MailboxException {
+ // fine
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]