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