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 2009/05/09 20:39:18 UTC

svn commit: r773259 - 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: rdonkin
Date: Sat May  9 18:39:17 2009
New Revision: 773259

URL: http://svn.apache.org/viewvc?rev=773259&view=rev
Log:
Consolidate message count into a single MetaData for the Mailbox. IMAP-79 https://issues.apache.org/jira/browse/IMAP-79

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/AbstractSelectionProcessor.java
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/MailboxMetaData.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=773259&r1=773258&r2=773259&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 Sat May  9 18:39:17 2009
@@ -159,5 +159,11 @@
          * @throws MailboxException
          */
         long getUidNext();
+        
+        /**
+         * Gets the number of messages that this mailbox contains.
+         * @return number of messages contained
+         */
+        int getMessageCount();
     }
 }

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java?rev=773259&r1=773258&r2=773259&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java Sat May  9 18:39:17 2009
@@ -101,7 +101,7 @@
         // TODO: compact this into a single API call for meta-data about the
         // repository
         flags(responder);
-        exists(responder, mailbox, mailboxSession);
+        exists(responder, metaData);
         recent(responder, selected);
         uidValidity(responder, metaData);
         unseen(responder, mailbox, mailboxSession, selected);
@@ -172,9 +172,8 @@
         responder.respond(recentResponse);
     }
 
-    private void exists(Responder responder, Mailbox mailbox,
-            final MailboxSession mailboxSession) throws MailboxException {
-        final int messageCount = mailbox.getMessageCount(mailboxSession);
+    private void exists(Responder responder, Mailbox.MetaData metaData) throws MailboxException {
+        final int messageCount = metaData.getMessageCount();
         final ExistsResponse existsResponse = new ExistsResponse(messageCount);
         responder.respond(existsResponse);
     }

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StatusProcessor.java?rev=773259&r1=773258&r2=773259&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StatusProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StatusProcessor.java Sat May  9 18:39:17 2009
@@ -69,8 +69,8 @@
             final Mailbox mailbox = mailboxManager.getMailbox(fullMailboxName, ImapSessionUtils.getMailboxSession(session));
             final Mailbox.MetaData metaData = mailbox.getMetaData(false, mailboxSession);
             
-            final Long messages = messages(statusDataItems, mailboxSession, mailbox);
-            final Long recent = recent(statusDataItems, metaData, mailbox);
+            final Long messages = messages(statusDataItems, metaData);
+            final Long recent = recent(statusDataItems, metaData);
             final Long uidNext = uidNext(statusDataItems, metaData);
             final Long uidValidity = uidValidity(statusDataItems, metaData);
             final Long unseen = unseen(statusDataItems, mailboxSession, mailbox);
@@ -123,8 +123,7 @@
         return uidNext;
     }
 
-    private Long recent(final StatusDataItems statusDataItems,
-            final Mailbox.MetaData metaData, final Mailbox mailbox)
+    private Long recent(final StatusDataItems statusDataItems, final Mailbox.MetaData metaData)
             throws MailboxException {
         final Long recent;
         if (statusDataItems.isRecent()) {
@@ -136,12 +135,11 @@
         return recent;
     }
 
-    private Long messages(final StatusDataItems statusDataItems,
-            final MailboxSession mailboxSession, final Mailbox mailbox)
+    private Long messages(final StatusDataItems statusDataItems, final Mailbox.MetaData metaData)
             throws MailboxException {
         final Long messages;
         if (statusDataItems.isMessages()) {
-            final int messageCount = mailbox.getMessageCount(mailboxSession);
+            final int messageCount = metaData.getMessageCount();
             messages = new Long(messageCount);
         } else {
             messages = null;

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java?rev=773259&r1=773258&r2=773259&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java Sat May  9 18:39:17 2009
@@ -34,8 +34,10 @@
     private final Flags premanentFlags;
     private final long uidValidity;
     private final long nextUid;
+    private final int messageCount;
     
-    public MailboxMetaData(final long[] recent, final Flags premanentFlags, final long uidValidity, final long nextUid) {
+    public MailboxMetaData(final long[] recent, final Flags premanentFlags, final long uidValidity, final long nextUid,
+            final int messageCount) {
         super();
         if (recent == null) {
             recentCount = 0;
@@ -46,6 +48,7 @@
         this.premanentFlags = premanentFlags;
         this.uidValidity = uidValidity;
         this.nextUid = nextUid;
+        this.messageCount = messageCount;
     }
 
     /**
@@ -82,4 +85,8 @@
     public long getUidNext() {
         return nextUid;
     }
+
+    public int getMessageCount() {
+        return messageCount;
+    }
 }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=773259&r1=773258&r2=773259&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java Sat May  9 18:39:17 2009
@@ -478,6 +478,7 @@
         final Flags permanentFlags = getPermanentFlags();
         final long uidValidity = getUidValidity(mailboxSession);
         final long uidNext = getUidNext(mailboxSession);
-        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext);
+        final int messageCount = getMessageCount(mailboxSession);
+        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount);
     }
 }

Modified: james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/MailboxMetaData.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/MailboxMetaData.java?rev=773259&r1=773258&r2=773259&view=diff
==============================================================================
--- james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/MailboxMetaData.java (original)
+++ james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/MailboxMetaData.java Sat May  9 18:39:17 2009
@@ -23,6 +23,7 @@
 
 import org.apache.james.imap.mailbox.Mailbox;
 
+
 /**
  * Describes the current state of a mailbox.
  */
@@ -33,8 +34,10 @@
     private final Flags premanentFlags;
     private final long uidValidity;
     private final long nextUid;
+    private final int messageCount;
     
-    public MailboxMetaData(final long[] recent, final Flags premanentFlags, final long uidValidity, final long nextUid) {
+    public MailboxMetaData(final long[] recent, final Flags premanentFlags, final long uidValidity, final long nextUid,
+            final int messageCount) {
         super();
         if (recent == null) {
             recentCount = 0;
@@ -45,6 +48,7 @@
         this.premanentFlags = premanentFlags;
         this.uidValidity = uidValidity;
         this.nextUid = nextUid;
+        this.messageCount = messageCount;
     }
 
     /**
@@ -82,4 +86,7 @@
         return nextUid;
     }
 
+    public int getMessageCount() {
+        return messageCount;
+    }
 }

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=773259&r1=773258&r2=773259&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 Sat May  9 18:39:17 2009
@@ -816,6 +816,7 @@
         final Flags permanentFlags = getPermanentFlags();
         final long uidValidity = getUidValidity(mailboxSession);
         final long uidNext = getUidNext(mailboxSession);
-        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext);
+        final int messageCount = getMessageCount(mailboxSession);
+        return new MailboxMetaData(recent, permanentFlags, uidValidity, uidNext, messageCount);
     }
 }



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