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/08/13 10:58:56 UTC

svn commit: r985136 - 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/

Author: norman
Date: Fri Aug 13 08:58:56 2010
New Revision: 985136

URL: http://svn.apache.org/viewvc?rev=985136&view=rev
Log:
Allow to override the recent(...) method in StoreMessageManager + return a List<Long> 

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/store/src/main/java/org/apache/james/imap/store/MailboxMetaData.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMessageManager.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=985136&r1=985135&r2=985136&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 Fri Aug 13 08:58:56 2010
@@ -22,6 +22,7 @@ package org.apache.james.imap.mailbox;
 import java.io.InputStream;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import javax.mail.Flags;
@@ -149,9 +150,8 @@ public interface Mailbox {
         /**
          * Gets the UIDs of recent messages. 
          * @return the uids flagged RECENT in this mailbox, 
-         * or null when there are no recent uids
          */
-        public long[] getRecent();
+        public List<Long> getRecent();
 
         /**
          * Gets the number of recent messages.

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=985136&r1=985135&r2=985136&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 Fri Aug 13 08:58:56 2010
@@ -20,6 +20,7 @@
 package org.apache.james.imap.processor;
 
 import java.util.Iterator;
+import java.util.List;
 
 import javax.mail.Flags;
 
@@ -205,12 +206,10 @@ abstract class AbstractSelectionProcesso
 
     private void addRecent(final Mailbox.MetaData metaData,
             SelectedMailbox sessionMailbox) throws MailboxException {
-        final long[] recentUids = metaData.getRecent();
-        if (recentUids != null) {
-            for (int i = 0; i < recentUids.length; i++) {
-                long uid = recentUids[i];
-                sessionMailbox.addRecent(uid);
-            }
+        final List<Long> recentUids = metaData.getRecent();
+        for (int i = 0; i < recentUids.size(); i++) {
+            long uid = recentUids.get(i);
+            sessionMailbox.addRecent(uid);
         }
     }
 }

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=985136&r1=985135&r2=985136&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 Fri Aug 13 08:58:56 2010
@@ -19,6 +19,9 @@
 
 package org.apache.james.imap.store;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.mail.Flags;
 
 import org.apache.james.imap.mailbox.Mailbox;
@@ -30,7 +33,7 @@ import org.apache.james.imap.mailbox.Mai
 public class MailboxMetaData implements Mailbox.MetaData {
 
     private final int recentCount;
-    private final long[] recent;
+    private final List<Long> recent;
     private final Flags premanentFlags;
     private final long uidValidity;
     private final long nextUid;
@@ -39,15 +42,17 @@ public class MailboxMetaData implements 
     private final Long firstUnseen;
     private final boolean writeable;
     
-    public MailboxMetaData(final long[] recent, final Flags premanentFlags, final long uidValidity, final long nextUid,
+    public MailboxMetaData(final List<Long> recent, final Flags premanentFlags, final long uidValidity, final long nextUid,
             final int messageCount, final int unseenCount, final Long firstUnseen, final boolean writeable) {
         super();
         if (recent == null) {
-            recentCount = 0;
+            this.recent = new ArrayList<Long>();
         } else {
-            recentCount = recent.length;
+            this.recent = recent;
+
         }
-        this.recent = recent;
+        recentCount = recent.size();
+
         this.premanentFlags = premanentFlags;
         this.uidValidity = uidValidity;
         this.nextUid = nextUid;
@@ -74,7 +79,7 @@ public class MailboxMetaData implements 
     /**
      * @see {@link Mailbox.MetaData#getRecent()}
      */
-    public long[] getRecent() {
+    public List<Long> getRecent() {
         return recent;
     }
 

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=985136&r1=985135&r2=985136&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 Fri Aug 13 08:58:56 2010
@@ -40,7 +40,6 @@ import javax.mail.Flags;
 import javax.mail.MessagingException;
 import javax.mail.util.SharedFileInputStream;
 
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.mailbox.MailboxException;
 import org.apache.james.imap.mailbox.MailboxListener;
@@ -367,7 +366,15 @@ public abstract class StoreMessageManage
         return permanentFlags;
     }
 
-    private long[] recent(final boolean reset, MailboxSession mailboxSession) throws MailboxException {
+    /**
+     * Return a List which holds all uids of recent messages and optional reset the recent flag on the messages for the uids
+     * 
+     * @param reset
+     * @param mailboxSession
+     * @return list
+     * @throws MailboxException
+     */
+    protected List<Long> recent(final boolean reset, MailboxSession mailboxSession) throws MailboxException {
         final List<Long> results = new ArrayList<Long>();
 
         messageMapper.execute(new TransactionalMapper.Transaction() {
@@ -388,7 +395,7 @@ public abstract class StoreMessageManage
             
         });;
         
-        return ArrayUtils.toPrimitive(results.toArray(new Long[results.size()]));
+        return results;
     }
 
 
@@ -535,7 +542,7 @@ public abstract class StoreMessageManage
      */
     public MetaData getMetaData(boolean resetRecent, MailboxSession mailboxSession, 
             org.apache.james.imap.mailbox.Mailbox.MetaData.FetchGroup fetchGroup) throws MailboxException {
-        final long[] recent = recent(resetRecent, mailboxSession);
+        final List<Long> recent = recent(resetRecent, mailboxSession);
         final Flags permanentFlags = getPermanentFlags();
         final long uidValidity = getMailboxEntity().getUidValidity();
         final long uidNext = getUidNext(mailboxSession);



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