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 rd...@apache.org on 2008/03/22 20:31:25 UTC
svn commit: r640066 - in /james/server/trunk:
core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/
experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/
imap-api/src/main/java/org/apache/james/...
Author: rdonkin
Date: Sat Mar 22 12:31:23 2008
New Revision: 640066
URL: http://svn.apache.org/viewvc?rev=640066&view=rev
Log:
RECENT redesign step 2: IMAP protocol layer now caches RECENT uids.
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/Mailbox.java
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/AppendToSelected.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchEnvelope.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFields.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFieldsNot.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchInternalDate.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectAppend.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectUnseen.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchCombinations.test
james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/SelectedImapMailbox.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/ExpungeProcessor.java
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearcher.java
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
Modified: james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/Mailbox.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/Mailbox.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/Mailbox.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/mailbox/Mailbox.java Sat Mar 22 12:31:23 2008
@@ -35,7 +35,7 @@
* @throws MailboxManagerException
*/
- String getName() throws MailboxManagerException;
+ String getName();
int getMessageCount(MailboxSession mailboxSession) throws MailboxManagerException;
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/AppendToSelected.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/AppendToSelected.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/AppendToSelected.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/AppendToSelected.test Sat Mar 22 12:31:23 2008
@@ -56,7 +56,7 @@
C: Hello Joe, could we change that to 4:00pm tomorrow?
C:
S: \* 2 EXISTS
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A007 OK APPEND completed.
C: a1 DELETE appendBox
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchEnvelope.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchEnvelope.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchEnvelope.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchEnvelope.test Sat Mar 22 12:31:23 2008
@@ -34,7 +34,7 @@
C: Works!
C:
S: \* 5 EXISTS
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A007 OK APPEND completed.
C: f1 FETCH 1 (ENVELOPE)
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFields.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFields.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFields.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFields.test Sat Mar 22 12:31:23 2008
@@ -59,9 +59,7 @@
C:
C: - robert
S: \* 2 EXISTS
-#TODO: FIX RECENT
-#S: \* 2 RECENT
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A5 OK APPEND completed\.
C: A6 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -93,9 +91,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-# TODO: FIX RECENT
-# S: \* 3 RECENT
-S: \* 1 RECENT
+S: \* 3 RECENT
S: A6 OK APPEND completed\.
C: A7 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -133,9 +129,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-# TODO: FIX RECENT
-# S: \* 4 RECENT
-S: \* 1 RECENT
+S: \* 4 RECENT
S: A7 OK APPEND completed\.
C: A8 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -230,9 +224,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-# TODO: FIX RECENT
-#S: \* 5 RECENT
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A8 OK APPEND completed\.
C: A9 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -243,9 +235,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-# TODO: RECENT
-#S: \* 6 RECENT
-S: \* 1 RECENT
+S: \* 6 RECENT
S: A9 OK APPEND completed\.
C: A10 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -257,9 +247,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-# TODO: FIX RECENT
-#S: \* 7 RECENT
-S: \* 1 RECENT
+S: \* 7 RECENT
S: A10 OK APPEND completed\.
C: A11 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -270,9 +258,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-# TODO: FIX RECENT
-#S: \* 8 RECENT
-S: \* 1 RECENT
+S: \* 8 RECENT
S: A11 OK APPEND completed\.
C: A12 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -284,15 +270,11 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-# TODO: FIX RECENT
-#S: \* 9 RECENT
-S: \* 1 RECENT
+S: \* 9 RECENT
S: A12 OK APPEND completed\.
C: A13 SELECT testmailbox
S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
S: \* 9 EXISTS
-# TODO: FIX RECENT
-# S: \* 1 RECENT
S: \* 0 RECENT
S: \* OK \[UIDVALIDITY (.)*
S: \* OK \[UNSEEN 1\] Message 1 is the first unseen
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFieldsNot.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFieldsNot.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFieldsNot.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchHeaderFieldsNot.test Sat Mar 22 12:31:23 2008
@@ -59,9 +59,7 @@
C:
C: - robert
S: \* 2 EXISTS
-# TODO: FIX RECENT
-#S: \* 2 RECENT
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A5 OK APPEND completed\.
C: A6 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -93,9 +91,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-# TODO: FIX RECENT
-#S: \* 3 RECENT
-S: \* 1 RECENT
+S: \* 3 RECENT
S: A6 OK APPEND completed\.
C: A7 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -133,9 +129,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-# TODO: FIX RECENT
-#S: \* 4 RECENT
-S: \* 1 RECENT
+S: \* 4 RECENT
S: A7 OK APPEND completed\.
C: A8 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -230,9 +224,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-# TODO: FIX RECENT
-#S: \* 5 RECENT
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A8 OK APPEND completed\.
C: A9 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -243,9 +235,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-# TODO: FIX RECENT
-#S: \* 6 RECENT
-S: \* 1 RECENT
+S: \* 6 RECENT
S: A9 OK APPEND completed\.
C: A10 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -257,9 +247,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-# TODO: FIX RECENT
-#S: \* 7 RECENT
-S: \* 1 RECENT
+S: \* 7 RECENT
S: A10 OK APPEND completed\.
C: A11 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -270,9 +258,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-# TODO: FIX RECENT
-#S: \* 8 RECENT
-S: \* 1 RECENT
+S: \* 8 RECENT
S: A11 OK APPEND completed\.
C: A12 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -284,9 +270,7 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-# TODO: FIX RECENT
-#S: \* 9 RECENT
-S: \* 1 RECENT
+S: \* 9 RECENT
S: A12 OK APPEND completed\.
C: A13 SELECT testmailbox
S: \* FLAGS \(\\Answered \\Deleted \\Draft \\Flagged \\Seen\)
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchInternalDate.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchInternalDate.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchInternalDate.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/FetchInternalDate.test Sat Mar 22 12:31:23 2008
@@ -30,7 +30,7 @@
C: Hello Joe, could we change that to 4:00pm tomorrow?
C:
S: \* 5 EXISTS
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A004 OK APPEND completed.
C: F11 FETCH 5 INTERNALDATE
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test Sat Mar 22 12:31:23 2008
@@ -58,9 +58,7 @@
C:
C: - robert
S: \* 2 EXISTS
-#TODO FIX RECENT
-#S: \* 2 RECENT
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A5 OK APPEND completed\.
C: A6 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -92,9 +90,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-# TODO:FIX RECENT
-# S: \* 3 RECENT
-S: \* 1 RECENT
+S: \* 3 RECENT
S: A6 OK APPEND completed\.
C: A7 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -132,9 +128,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-# TODO: FIX RECENT
-#S: \* 4 RECENT
-S: \* 1 RECENT
+S: \* 4 RECENT
S: A7 OK APPEND completed\.
C: A8 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -229,9 +223,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-# TODO: FIX RECENT
-#S: \* 5 RECENT
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A8 OK APPEND completed\.
C: A9 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -242,9 +234,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-# TODO: FIX RECENT
-#S: \* 6 RECENT
-S: \* 1 RECENT
+S: \* 6 RECENT
S: A9 OK APPEND completed\.
C: A10 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -256,9 +246,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-# TODO: RECENT
-#S: \* 7 RECENT
-S: \* 1 RECENT
+S: \* 7 RECENT
S: A10 OK APPEND completed\.
C: A11 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -269,9 +257,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-# TODO: RECENT
-#S: \* 8 RECENT
-S: \* 1 RECENT
+S: \* 8 RECENT
S: A11 OK APPEND completed\.
C: A12 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -283,9 +269,7 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-# TODO: RECENT
-#S: \* 9 RECENT
-S: \* 1 RECENT
+S: \* 9 RECENT
S: A12 OK APPEND completed\.
C: A13 APPEND testmailbox {12272+}
C:
@@ -497,9 +481,7 @@
C: ------=_Part_3998_1661991.1205261618747--
C:
S: \* 10 EXISTS
-#TODO:RECENT
-#S: \* 10 RECENT
-S: \* 1 RECENT
+S: \* 10 RECENT
S: A13 OK APPEND completed\.
C: A14 APPEND testmailbox {3661+}
C:
@@ -594,9 +576,7 @@
C:
C:
S: \* 11 EXISTS
-#TODO: RECENT
-#S: \* 11 RECENT
-S: \* 1 RECENT
+S: \* 11 RECENT
S: A14 OK APPEND completed\.
C: A15 APPEND testmailbox {4387+}
C:
@@ -695,9 +675,7 @@
C:
C: --=-iC8rnNDvTPHypqsz+j7t--
S: \* 12 EXISTS
-# TODO:RECENT
-#S: \* 12 RECENT
-S: \* 1 RECENT
+S: \* 12 RECENT
S: A15 OK APPEND completed\.
C: A16 APPEND testmailbox {302+}
C: From: Samual Smith <sa...@example.org>
@@ -711,9 +689,7 @@
C:
C: Rhubard, I say!
S: \* 13 EXISTS
-#TODO: RECENT
-#S: \* 13 RECENT
-S: \* 1 RECENT
+S: \* 13 RECENT
S: A16 OK APPEND completed\.
C: A17 APPEND testmailbox {404+}
C: Resent-From: John Smith <jo...@example.org>
@@ -728,9 +704,7 @@
C:
C: Rhubard or custard? Rhubard AND custard!
S: \* 14 EXISTS
-# TODO:RECENT
-#S: \* 14 RECENT
-S: \* 1 RECENT
+S: \* 14 RECENT
S: A17 OK APPEND completed\.
C: A18 APPEND testmailbox {429+}
C: Received: from alpha.beta
@@ -749,9 +723,7 @@
C: Rhubard! Rhubard! Rhubard!
C:
S: \* 15 EXISTS
-#TODO: RECENT
-#S: \* 15 RECENT
-S: \* 1 RECENT
+S: \* 15 RECENT
S: A18 OK APPEND completed\.
C: A19 APPEND testmailbox {217+}
C: From: Timothy Taylor <ti...@example.org>
@@ -763,9 +735,7 @@
C: Custard? Rhubard!
C:
S: \* 16 EXISTS
-# TODO: RECENT
-#S: \* 16 RECENT
-S: \* 1 RECENT
+S: \* 16 RECENT
S: A19 OK APPEND completed\.
C: A20 APPEND testmailbox {14862+}
C: Return-Path: <ro...@gmail.com>
@@ -1045,9 +1015,7 @@
C:
C:
S: \* 17 EXISTS
-#TODO:RECENT
-#S: \* 17 RECENT
-S: \* 1 RECENT
+S: \* 17 RECENT
S: A20 OK APPEND completed\.
C: A21 APPEND testmailbox {14154+}
C: Return-Path: <ro...@gmail.com>
@@ -1288,9 +1256,7 @@
C:
C:
S: \* 18 EXISTS
-#TODO: RECENT
-#S: \* 18 RECENT
-S: \* 1 RECENT
+S: \* 18 RECENT
S: A21 OK APPEND completed\.
C: A22 APPEND testmailbox {14996+}
C: Return-Path: <ro...@gmail.com>
@@ -1544,9 +1510,7 @@
C:
C:
S: \* 19 EXISTS
-#TODO: RECENT
-#S: \* 19 RECENT
-S: \* 1 RECENT
+S: \* 19 RECENT
S: A22 OK APPEND completed\.
C: A23 STORE 1:9 +FLAGS (\FLAGGED)
S: \* 1 FETCH \(FLAGS \(\\Flagged\)\)
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchCombinations.test Sat Mar 22 12:31:23 2008
@@ -58,9 +58,7 @@
C:
C: - robert
S: \* 2 EXISTS
-# TODO: RECENT
-# S: \* 2 RECENT
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A5 OK APPEND completed\.
C: A6 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -92,9 +90,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-# TODO:RECENT
-#S: \* 3 RECENT
-S: \* 1 RECENT
+S: \* 3 RECENT
S: A6 OK APPEND completed\.
C: A7 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -132,9 +128,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-# TODO: RECENT
-#S: \* 4 RECENT
-S: \* 1 RECENT
+S: \* 4 RECENT
S: A7 OK APPEND completed\.
C: A8 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -229,9 +223,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-# TODO: RECENT
-#S: \* 5 RECENT
-S: \* 1 RECENT
+S: \* 5 RECENT
S: A8 OK APPEND completed\.
C: A9 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -242,9 +234,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-# TODO: RECENT
-#S: \* 6 RECENT
-S: \* 1 RECENT
+S: \* 6 RECENT
S: A9 OK APPEND completed\.
C: A10 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -256,9 +246,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-# TODO: RECENT
-#S: \* 7 RECENT
-S: \* 1 RECENT
+S: \* 7 RECENT
S: A10 OK APPEND completed\.
C: A11 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -269,9 +257,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-# TODO: RECENT
-#S: \* 8 RECENT
-S: \* 1 RECENT
+S: \* 8 RECENT
S: A11 OK APPEND completed\.
C: A12 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -283,9 +269,7 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-# TODO: RECENT
-#S: \* 9 RECENT
-S: \* 1 RECENT
+S: \* 9 RECENT
S: A12 OK APPEND completed\.
C: A13 APPEND testmailbox {12272+}
C:
@@ -497,9 +481,7 @@
C: ------=_Part_3998_1661991.1205261618747--
C:
S: \* 10 EXISTS
-# TODO: RECENT
-#S: \* 10 RECENT
-S: \* 1 RECENT
+S: \* 10 RECENT
S: A13 OK APPEND completed\.
C: A14 APPEND testmailbox {3661+}
C:
@@ -594,9 +576,7 @@
C:
C:
S: \* 11 EXISTS
-# TODO: RECENT
-#S: \* 11 RECENT
-S: \* 1 RECENT
+S: \* 11 RECENT
S: A14 OK APPEND completed\.
C: A15 APPEND testmailbox {4387+}
C:
@@ -695,9 +675,7 @@
C:
C: --=-iC8rnNDvTPHypqsz+j7t--
S: \* 12 EXISTS
-# TODO:RECENT
-#S: \* 12 RECENT
-S: \* 1 RECENT
+S: \* 12 RECENT
S: A15 OK APPEND completed\.
C: A16 APPEND testmailbox {302+}
C: From: Samual Smith <sa...@example.org>
@@ -711,9 +689,7 @@
C:
C: Rhubard, I say!
S: \* 13 EXISTS
-# TODO: RECENT
-#S: \* 13 RECENT
-S: \* 1 RECENT
+S: \* 13 RECENT
S: A16 OK APPEND completed\.
C: A17 APPEND testmailbox {404+}
C: Resent-From: John Smith <jo...@example.org>
@@ -728,9 +704,7 @@
C:
C: Rhubard or custard? Rhubard AND custard!
S: \* 14 EXISTS
-# TODO: RECENT
-#S: \* 14 RECENT
-S: \* 1 RECENT
+S: \* 14 RECENT
S: A17 OK APPEND completed\.
C: A18 APPEND testmailbox {429+}
C: Received: from alpha.beta
@@ -749,9 +723,7 @@
C: Rhubard! Rhubard! Rhubard!
C:
S: \* 15 EXISTS
-# TODO: RECENT
-#S: \* 15 RECENT
-S: \* 1 RECENT
+S: \* 15 RECENT
S: A18 OK APPEND completed\.
C: A19 APPEND testmailbox {217+}
C: From: Timothy Taylor <ti...@example.org>
@@ -763,9 +735,7 @@
C: Custard? Rhubard!
C:
S: \* 16 EXISTS
-#TODO: RECENT
-#S: \* 16 RECENT
-S: \* 1 RECENT
+S: \* 16 RECENT
S: A19 OK APPEND completed\.
C: A20 APPEND testmailbox {14862+}
C: Return-Path: <ro...@gmail.com>
@@ -1045,9 +1015,7 @@
C:
C:
S: \* 17 EXISTS
-# TODO:RECENT
-#S: \* 17 RECENT
-S: \* 1 RECENT
+S: \* 17 RECENT
S: A20 OK APPEND completed\.
C: A21 APPEND testmailbox {14154+}
C: Return-Path: <ro...@gmail.com>
@@ -1288,9 +1256,7 @@
C:
C:
S: \* 18 EXISTS
-# TODO: RECENT
-#S: \* 18 RECENT
-S: \* 1 RECENT
+S: \* 18 RECENT
S: A21 OK APPEND completed\.
C: A22 APPEND testmailbox {14996+}
C: Return-Path: <ro...@gmail.com>
@@ -1544,9 +1510,7 @@
C:
C:
S: \* 19 EXISTS
-#TODO: RECENT
-#S: \* 19 RECENT
-S: \* 1 RECENT
+S: \* 19 RECENT
S: A22 OK APPEND completed\.
C: A23 STORE 1:9 +FLAGS (\FLAGGED)
S: \* 1 FETCH \(FLAGS \(\\Flagged\)\)
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectAppend.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectAppend.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectAppend.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectAppend.test Sat Mar 22 12:31:23 2008
@@ -59,7 +59,7 @@
C: Hello Joe, could we change that to 4:00pm tomorrow?
C:
S: \* 2 EXISTS
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A009 OK APPEND completed.
C: a1 DELETE selectappend
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectUnseen.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectUnseen.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectUnseen.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SelectUnseen.test Sat Mar 22 12:31:23 2008
@@ -62,7 +62,7 @@
C: Hello Joe, could we change that to 4:00pm tomorrow?
C:
S: \* 2 EXISTS
-S: \* 1 RECENT
+S: \* 2 RECENT
S: A009 OK APPEND completed.
C: 20 SELECT another
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test Sat Mar 22 12:31:23 2008
@@ -418,9 +418,7 @@
C:
C: - robert
S: \* 2 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 2 RECENT
+S: \* 2 RECENT
S: A65 OK APPEND completed\.
C: A66 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -452,9 +450,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 3 RECENT
+S: \* 3 RECENT
S: A66 OK APPEND completed\.
C: A67 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -492,9 +488,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 4 RECENT
+S: \* 4 RECENT
S: A67 OK APPEND completed\.
C: A68 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -589,9 +583,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 5 RECENT
+S: \* 5 RECENT
S: A68 OK APPEND completed\.
C: A69 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -602,9 +594,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 6 RECENT
+S: \* 6 RECENT
S: A69 OK APPEND completed\.
C: A70 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -616,9 +606,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 7 RECENT
+S: \* 7 RECENT
S: A70 OK APPEND completed\.
C: A71 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -629,9 +617,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 8 RECENT
+S: \* 8 RECENT
S: A71 OK APPEND completed\.
C: A72 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -643,9 +629,7 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 9 RECENT
+S: \* 9 RECENT
S: A72 OK APPEND completed\.
C: A73 APPEND testmailbox {12272+}
C:
@@ -857,9 +841,7 @@
C: ------=_Part_3998_1661991.1205261618747--
C:
S: \* 10 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 10 RECENT
+S: \* 10 RECENT
S: A73 OK APPEND completed\.
C: A74 APPEND testmailbox {3661+}
C:
@@ -954,9 +936,7 @@
C:
C:
S: \* 11 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 11 RECENT
+S: \* 11 RECENT
S: A74 OK APPEND completed\.
C: A75 APPEND testmailbox {4387+}
C:
@@ -1055,9 +1035,7 @@
C:
C: --=-iC8rnNDvTPHypqsz+j7t--
S: \* 12 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 12 RECENT
+S: \* 12 RECENT
S: A75 OK APPEND completed\.
C: A76 APPEND testmailbox {302+}
C: From: Samual Smith <sa...@example.org>
@@ -1071,9 +1049,7 @@
C:
C: Rhubard, I say!
S: \* 13 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 13 RECENT
+S: \* 13 RECENT
S: A76 OK APPEND completed\.
C: A77 APPEND testmailbox {404+}
C: Resent-From: John Smith <jo...@example.org>
@@ -1088,9 +1064,7 @@
C:
C: Rhubard or custard? Rhubard AND custard!
S: \* 14 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 14 RECENT
+S: \* 14 RECENT
S: A77 OK APPEND completed\.
C: A78 APPEND testmailbox {429+}
C: Received: from alpha.beta
@@ -1109,9 +1083,7 @@
C: Rhubard! Rhubard! Rhubard!
C:
S: \* 15 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 15 RECENT
+S: \* 15 RECENT
S: A78 OK APPEND completed\.
C: A79 APPEND testmailbox {217+}
C: From: Timothy Taylor <ti...@example.org>
@@ -1123,9 +1095,7 @@
C: Custard? Rhubard!
C:
S: \* 16 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 16 RECENT
+S: \* 16 RECENT
S: A79 OK APPEND completed\.
C: A80 APPEND testmailbox {14862+}
C: Return-Path: <ro...@gmail.com>
@@ -1405,9 +1375,7 @@
C:
C:
S: \* 17 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 17 RECENT
+S: \* 17 RECENT
S: A80 OK APPEND completed\.
C: A81 APPEND testmailbox {14154+}
C: Return-Path: <ro...@gmail.com>
@@ -1648,9 +1616,7 @@
C:
C:
S: \* 18 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 18 RECENT
+S: \* 18 RECENT
S: A81 OK APPEND completed\.
C: A82 APPEND testmailbox {14996+}
C: Return-Path: <ro...@gmail.com>
@@ -1904,9 +1870,7 @@
C:
C:
S: \* 19 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 19 RECENT
+S: \* 19 RECENT
S: A82 OK APPEND completed\.
C: A83 STORE 1:9 +FLAGS (\FLAGGED)
S: \* 1 FETCH \(FLAGS \(\\Flagged\)\)
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchCombinations.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchCombinations.test?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchCombinations.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchCombinations.test Sat Mar 22 12:31:23 2008
@@ -418,9 +418,7 @@
C:
C: - robert
S: \* 2 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 2 RECENT
+S: \* 2 RECENT
S: A65 OK APPEND completed\.
C: A66 APPEND testmailbox {668+}
C: From: Timothy Tayler <ti...@example.org>
@@ -452,9 +450,7 @@
C: --1729--
C:
S: \* 3 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 3 RECENT
+S: \* 3 RECENT
S: A66 OK APPEND completed\.
C: A67 APPEND testmailbox {765+}
C: From: Timothy Tayler <ti...@example.org>
@@ -492,9 +488,7 @@
C: --1729--
C:
S: \* 4 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 4 RECENT
+S: \* 4 RECENT
S: A67 OK APPEND completed\.
C: A68 APPEND testmailbox {1767+}
C: From: Timothy Tayler <ti...@example.org>
@@ -589,9 +583,7 @@
C: --1729--
C:
S: \* 5 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 5 RECENT
+S: \* 5 RECENT
S: A68 OK APPEND completed\.
C: A69 APPEND testmailbox {185+}
C: From: John Smith <jo...@example.org>
@@ -602,9 +594,7 @@
C:
C: Hello, World!
S: \* 6 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 6 RECENT
+S: \* 6 RECENT
S: A69 OK APPEND completed\.
C: A70 APPEND testmailbox {227+}
C: From: John Smith <jo...@example.org>
@@ -616,9 +606,7 @@
C:
C: Hello, World!
S: \* 7 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 7 RECENT
+S: \* 7 RECENT
S: A70 OK APPEND completed\.
C: A71 APPEND testmailbox {185+}
C: From: Timothy Tayler <ti...@example.org>
@@ -629,9 +617,7 @@
C: This is a very simple email.
C:
S: \* 8 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 8 RECENT
+S: \* 8 RECENT
S: A71 OK APPEND completed\.
C: A72 APPEND testmailbox {318+}
C: From: "Brian G. Hutton" <br...@example.org>
@@ -643,9 +629,7 @@
C:
C: Rhubarb!
S: \* 9 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 9 RECENT
+S: \* 9 RECENT
S: A72 OK APPEND completed\.
C: A73 APPEND testmailbox {12272+}
C:
@@ -857,9 +841,7 @@
C: ------=_Part_3998_1661991.1205261618747--
C:
S: \* 10 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 10 RECENT
+S: \* 10 RECENT
S: A73 OK APPEND completed\.
C: A74 APPEND testmailbox {3661+}
C:
@@ -954,9 +936,7 @@
C:
C:
S: \* 11 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 11 RECENT
+S: \* 11 RECENT
S: A74 OK APPEND completed\.
C: A75 APPEND testmailbox {4387+}
C:
@@ -1055,9 +1035,7 @@
C:
C: --=-iC8rnNDvTPHypqsz+j7t--
S: \* 12 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 12 RECENT
+S: \* 12 RECENT
S: A75 OK APPEND completed\.
C: A76 APPEND testmailbox {302+}
C: From: Samual Smith <sa...@example.org>
@@ -1071,9 +1049,7 @@
C:
C: Rhubard, I say!
S: \* 13 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 13 RECENT
+S: \* 13 RECENT
S: A76 OK APPEND completed\.
C: A77 APPEND testmailbox {404+}
C: Resent-From: John Smith <jo...@example.org>
@@ -1088,9 +1064,7 @@
C:
C: Rhubard or custard? Rhubard AND custard!
S: \* 14 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 14 RECENT
+S: \* 14 RECENT
S: A77 OK APPEND completed\.
C: A78 APPEND testmailbox {429+}
C: Received: from alpha.beta
@@ -1109,9 +1083,7 @@
C: Rhubard! Rhubard! Rhubard!
C:
S: \* 15 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 15 RECENT
+S: \* 15 RECENT
S: A78 OK APPEND completed\.
C: A79 APPEND testmailbox {217+}
C: From: Timothy Taylor <ti...@example.org>
@@ -1123,9 +1095,7 @@
C: Custard? Rhubard!
C:
S: \* 16 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 16 RECENT
+S: \* 16 RECENT
S: A79 OK APPEND completed\.
C: A80 APPEND testmailbox {14862+}
C: Return-Path: <ro...@gmail.com>
@@ -1405,9 +1375,7 @@
C:
C:
S: \* 17 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 17 RECENT
+S: \* 17 RECENT
S: A80 OK APPEND completed\.
C: A81 APPEND testmailbox {14154+}
C: Return-Path: <ro...@gmail.com>
@@ -1648,9 +1616,7 @@
C:
C:
S: \* 18 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 18 RECENT
+S: \* 18 RECENT
S: A81 OK APPEND completed\.
C: A82 APPEND testmailbox {14996+}
C: Return-Path: <ro...@gmail.com>
@@ -1904,9 +1870,7 @@
C:
C:
S: \* 19 EXISTS
-S: \* 1 RECENT
-#TODO: RECENT
-#S: \* 19 RECENT
+S: \* 19 RECENT
S: A82 OK APPEND completed\.
C: A83 STORE 1:9 +FLAGS (\FLAGGED)
S: \* 1 FETCH \(FLAGS \(\\Flagged\)\)
Modified: james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/SelectedImapMailbox.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/SelectedImapMailbox.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/SelectedImapMailbox.java (original)
+++ james/server/trunk/imap-api/src/main/java/org/apache/james/api/imap/process/SelectedImapMailbox.java Sat Mar 22 12:31:23 2008
@@ -31,4 +31,14 @@
public int msn(long uid);
public abstract long uid(int i);
+
+ public void addRecent(long uid);
+
+ public void removeRecent(long uid);
+
+ public long[] getRecent();
+
+ public int recentCount();
+
+ public String getName();
}
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/base/SelectedMailboxSessionImpl.java Sat Mar 22 12:31:23 2008
@@ -20,8 +20,11 @@
package org.apache.james.imapserver.processor.base;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
import javax.mail.Flags;
import javax.mail.MessagingException;
@@ -51,11 +54,13 @@
private final MailboxEventAnalyser events;
private final UidToMsnConverter converter;
private final MailboxSession mailboxSession;
+ private final Set recentUids;
public SelectedMailboxSessionImpl(ImapMailbox mailbox, List uids,
MailboxSession mailboxSession) throws MailboxManagerException {
this.mailbox = mailbox;
this.mailboxSession = mailboxSession;
+ recentUids = new TreeSet();
final long sessionId = mailboxSession.getSessionId();
events = new MailboxEventAnalyser(sessionId);
// Ignore events from our session
@@ -161,15 +166,10 @@
}
private void addRecentResponses(final List responses, final ImapMailbox mailbox) {
- try {
- final int recentCount = mailbox.recent(true, mailboxSession).length;
- // TODO: use factory
- RecentResponse response = new RecentResponse(recentCount);
- responses.add(response);
- } catch (MailboxManagerException e) {
- final String message = "Failed to retrieve recent count data";
- handleResponseException(responses, e, message);
- }
+ final int recentCount = recentCount();
+ // TODO: use factory
+ RecentResponse response = new RecentResponse(recentCount);
+ responses.add(response);
}
private void handleResponseException(final List responses, MessagingException e, final String message) {
@@ -194,5 +194,40 @@
public long uid(int msn) {
return converter.getUid(msn);
+ }
+
+ public void removeRecent(long uid) {
+ recentUids.remove(new Long(uid));
+ }
+
+ public void addRecent(long uid) {
+ recentUids.add(new Long(uid));
+ }
+
+ public long[] getRecent() {
+ checkExpungedRecents();
+ final long[] results = new long[recentUids.size()];
+ int count = 0;
+ for (Iterator it=recentUids.iterator();it.hasNext();) {
+ Long uid = (Long) it.next();
+ results[count++] = uid.longValue();
+ }
+ return results;
+ }
+
+ public int recentCount() {
+ checkExpungedRecents();
+ return recentUids.size();
+ }
+
+ public String getName() {
+ return mailbox.getName();
+ }
+
+ private void checkExpungedRecents() {
+ for(final Iterator it = events.expungedUids();it.hasNext();) {
+ final Long uid = (Long) it.next();
+ recentUids.remove(uid);
+ }
}
}
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AbstractMailboxSelectionProcessor.java Sat Mar 22 12:31:23 2008
@@ -89,8 +89,8 @@
// TODO: compact this into a single API call for meta-data about the repository
final Flags permanentFlags = mailbox.getPermanentFlags();
final boolean writeable = mailbox.isWriteable() && !isExamine;
- final boolean resetRecent = !isExamine;
- final int recentCount = mailbox.recent(resetRecent, mailboxSession).length;
+ final SelectedImapMailbox selected = session.getSelected();
+ final int recentCount = selected.recentCount();
final long uidValidity = mailbox.getUidValidity(mailboxSession);
final MessageResult firstUnseen = mailbox.getFirstUnseen(FetchGroupImpl.MINIMAL, mailboxSession);
final int messageCount = mailbox.getMessageCount(mailboxSession);
@@ -98,7 +98,7 @@
if (firstUnseen == null) {
msn = -1;
} else {
- msn = session.getSelected().msn(firstUnseen.getUid());
+ msn = selected.msn(firstUnseen.getUid());
}
result = new ExamineAndSelectResponse(command, permanentFlags,
writeable, recentCount, uidValidity, msn, messageCount, tag);
@@ -117,12 +117,21 @@
final MessageResult result = (MessageResult) it.next();
uids.add(new Long(result.getUid()));
}
-
SelectedImapMailbox sessionMailbox = new SelectedMailboxSessionImpl(mailbox, uids, mailboxSession);
+
+ addRecent(readOnly, mailbox, mailboxSession, sessionMailbox);
session.selected(sessionMailbox);
session.setAttribute(
ImapSessionUtils.SELECTED_MAILBOX_ATTRIBUTE_SESSION_KEY,
mailbox);
return readOnly;
+ }
+
+ private void addRecent(boolean readOnly, final ImapMailbox mailbox, final MailboxSession mailboxSession, SelectedImapMailbox sessionMailbox) throws MailboxManagerException {
+ final long[] recentUids = mailbox.recent(!readOnly, mailboxSession);
+ for (int i = 0; i < recentUids.length; i++) {
+ long uid = recentUids[i];
+ sessionMailbox.addRecent(uid);
+ }
}
}
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/AppendProcessor.java Sat Mar 22 12:31:23 2008
@@ -35,6 +35,7 @@
import org.apache.james.api.imap.message.response.imap4rev1.StatusResponseFactory;
import org.apache.james.api.imap.process.ImapProcessor;
import org.apache.james.api.imap.process.ImapSession;
+import org.apache.james.api.imap.process.SelectedImapMailbox;
import org.apache.james.imap.message.request.imap4rev1.AppendRequest;
import org.apache.james.imapserver.processor.base.AbstractMailboxAwareProcessor;
import org.apache.james.imapserver.processor.base.AuthorizationException;
@@ -42,6 +43,7 @@
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
import org.apache.james.mailboxmanager.MailboxSession;
+import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
import org.apache.james.mailboxmanager.manager.MailboxManager;
@@ -110,9 +112,17 @@
ImapSession session, String tag, ImapCommand command, ImapMailbox mailbox,
Responder responder) throws MailboxException {
try {
- message.setFlag(Flag.RECENT, true);
final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
- mailbox.appendMessage(message, datetime, FetchGroupImpl.MINIMAL, mailboxSession);
+ final SelectedImapMailbox selectedMailbox = session.getSelected();
+ final boolean isSelectedMailbox = selectedMailbox != null && mailbox.getName().equals(selectedMailbox.getName());
+ if (!isSelectedMailbox) {
+ message.setFlag(Flag.RECENT, true);
+ }
+ final MessageResult result = mailbox.appendMessage(message, datetime, FetchGroupImpl.MINIMAL, mailboxSession);
+ final long uid = result.getUid();
+ if (isSelectedMailbox) {
+ selectedMailbox.addRecent(uid);
+ }
} catch (MailboxManagerException e) {
// TODO why not TRYCREATE?
throw new MailboxException(e);
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/ExpungeProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/ExpungeProcessor.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/ExpungeProcessor.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/ExpungeProcessor.java Sat Mar 22 12:31:23 2008
@@ -19,6 +19,8 @@
package org.apache.james.imapserver.processor.imap4rev1;
+import java.util.Iterator;
+
import org.apache.james.api.imap.ImapCommand;
import org.apache.james.api.imap.ImapMessage;
import org.apache.james.api.imap.ProtocolException;
@@ -27,12 +29,14 @@
import org.apache.james.api.imap.message.response.imap4rev1.StatusResponseFactory;
import org.apache.james.api.imap.process.ImapProcessor;
import org.apache.james.api.imap.process.ImapSession;
+import org.apache.james.api.imap.process.SelectedImapMailbox;
import org.apache.james.imap.message.request.imap4rev1.ExpungeRequest;
import org.apache.james.imapserver.processor.base.AbstractImapRequestProcessor;
import org.apache.james.imapserver.processor.base.AuthorizationException;
import org.apache.james.imapserver.processor.base.ImapSessionUtils;
import org.apache.james.imapserver.store.MailboxException;
import org.apache.james.mailboxmanager.MailboxManagerException;
+import org.apache.james.mailboxmanager.MessageResult;
import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
import org.apache.james.mailboxmanager.impl.GeneralMessageSetImpl;
import org.apache.james.mailboxmanager.mailbox.ImapMailbox;
@@ -57,8 +61,16 @@
no(command, tag, responder, HumanReadableTextKey.MAILBOX_IS_READ_ONLY);
} else {
try {
- mailbox.expunge(GeneralMessageSetImpl.all(),
+ final Iterator it = mailbox.expunge(GeneralMessageSetImpl.all(),
FetchGroupImpl.MINIMAL, ImapSessionUtils.getMailboxSession(session));
+ final SelectedImapMailbox mailboxSession = session.getSelected();
+ if (mailboxSession != null) {
+ while(it.hasNext()) {
+ final MessageResult result = (MessageResult) it.next();
+ final long uid = result.getUid();
+ mailboxSession.removeRecent(uid);
+ }
+ }
unsolicitedResponses(session, responder, false);
okComplete(command, tag, responder);
} catch (MailboxManagerException e) {
Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearcher.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearcher.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearcher.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearcher.java Sat Mar 22 12:31:23 2008
@@ -142,7 +142,6 @@
parser.parse(input);
while (!result && parser.next() != MimeTokenStream.T_END_OF_STREAM) {
final int state = parser.getState();
- System.out.println(MimeTokenStream.stateToString(state));
switch (state) {
case MimeTokenStream.T_BODY:
case MimeTokenStream.T_PREAMBLE:
Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java?rev=640066&r1=640065&r2=640066&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailbox.java Sat Mar 22 12:31:23 2008
@@ -93,7 +93,7 @@
getUidToKeyConverter().setUidValidity(mailboxRow.getUidValidity());
}
- public synchronized String getName() throws MailboxManagerException {
+ public synchronized String getName() {
checkAccess();
return mailboxRow.getName();
}
@@ -609,7 +609,7 @@
}
}
- private void checkAccess() throws MailboxManagerException {
+ private void checkAccess() {
if (!open) {
throw new RuntimeException("mailbox is closed");
}
@@ -650,8 +650,6 @@
return getResults(fetchGroup, filteredMessages);
} catch (TorqueException e) {
- throw new MailboxManagerException(e);
- } catch (MessagingException e) {
throw new MailboxManagerException(e);
} finally {
lock.readLock().release();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org