Author: norman
Date: Fri Jun 17 11:02:19 2011
New Revision: 1136842
URL: http://svn.apache.org/viewvc?rev=1136842&view=rev
Log:
Rename MessageMapper.findRecentMessagesInMailbox(...) to
MessageMapper.findRecentMessageUidsInMailbox(..) and only return the uids. See
MAILBOX-94
Modified:
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMessage.java
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
Modified:
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
(original)
+++
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
Fri Jun 17 11:02:19 2011
@@ -472,14 +472,14 @@ public class JCRMessageMapper extends Ab
* (non-Javadoc)
*
* @see
- *
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox
+ *
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessageUidsInMailbox
* ()
*/
- public List<Message<String>> findRecentMessagesInMailbox(Mailbox<String>
mailbox) throws MailboxException {
+ public List<Long> findRecentMessageUidsInMailbox(Mailbox<String> mailbox)
throws MailboxException {
try {
- List<Message<String>> list = new ArrayList<Message<String>>();
+ List<Long> list = new ArrayList<Long>();
String queryString = "/jcr:root" + getMailboxPath(mailbox) +
"//element(*,jamesMailbox:message)[@" + JCRMessage.RECENT_PROPERTY +"='true']
order by @" + JCRMessage.UID_PROPERTY;
QueryManager manager =
getSession().getWorkspace().getQueryManager();
@@ -488,7 +488,7 @@ public class JCRMessageMapper extends Ab
NodeIterator iterator = result.getNodes();
while(iterator.hasNext()) {
- list.add(new JCRMessage(iterator.nextNode(),
mailboxSession.getLog()));
+ list.add(new JCRMessage(iterator.nextNode(),
mailboxSession.getLog()).getUid());
}
return list;
Modified:
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
(original)
+++
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java
Fri Jun 17 11:02:19 2011
@@ -352,14 +352,15 @@ public class JPAMessageMapper extends Ab
throw new MailboxException("Search of first unseen message failed
in mailbox " + mailbox, e);
}
}
-
- /**
- * @see
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox()
+
+ /*
+ * (non-Javadoc)
+ * @see
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessageUidsInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
*/
@SuppressWarnings("unchecked")
- public List<Message<Long>> findRecentMessagesInMailbox(Mailbox<Long>
mailbox) throws MailboxException {
+ public List<Long> findRecentMessageUidsInMailbox(Mailbox<Long> mailbox)
throws MailboxException {
try {
- Query query =
getEntityManager().createNamedQuery("findRecentMessagesInMailbox").setParameter("idParam",
mailbox.getMailboxId());
+ Query query =
getEntityManager().createNamedQuery("findRecentMessageUidsInMailbox").setParameter("idParam",
mailbox.getMailboxId());
return query.getResultList();
} catch (PersistenceException e) {
throw new MailboxException("Search of recent messages failed in
mailbox " + mailbox, e);
Modified:
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMessage.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMessage.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMessage.java
(original)
+++
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMessage.java
Fri Jun 17 11:02:19 2011
@@ -54,8 +54,8 @@ import org.apache.openjpa.persistence.jd
*/
@IdClass(AbstractJPAMessage.MailboxIdUidKey.class)
@NamedQueries({
- @NamedQuery(name="findRecentMessagesInMailbox",
- query="SELECT message FROM Message message WHERE
message.mailbox.mailboxId = :idParam AND message.recent = TRUE"),
+ @NamedQuery(name="findRecentMessageUidssInMailbox",
+ query="SELECT message.uid FROM Message message WHERE
message.mailbox.mailboxId = :idParam AND message.recent = TRUE"),
@NamedQuery(name="findUnseenMessagesInMailboxOrderByUid",
query="SELECT message FROM Message message WHERE
message.mailbox.mailboxId = :idParam AND message.seen = FALSE ORDER BY
message.uid ASC"),
@NamedQuery(name="findMessagesInMailbox",
Modified:
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
(original)
+++
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
Fri Jun 17 11:02:19 2011
@@ -225,19 +225,12 @@ public class MaildirMessageMapper extend
* (non-Javadoc)
* @see
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox)
*/
- public List<Message<Integer>> findRecentMessagesInMailbox(Mailbox<Integer>
mailbox)
+ public List<Long> findRecentMessageUidsInMailbox(Mailbox<Integer> mailbox)
throws MailboxException {
MaildirFolder folder = maildirStore.createMaildirFolder(mailbox);
- try {
- SortedMap<Long, MaildirMessageName> recentMessageNames =
folder.getRecentMessages(mailboxSession);
-
- List<Message<Integer>> recentMessages = new
ArrayList<Message<Integer>>(recentMessageNames.size());
- for (Entry<Long, MaildirMessageName> entry :
recentMessageNames.entrySet())
- recentMessages.add(new LazyLoadingMaildirMessage(mailbox,
entry.getKey(), entry.getValue()));
- return recentMessages;
- } catch (IOException e) {
- throw new MailboxException("Failure while search recent messages
in Mailbox " + mailbox, e );
- }
+ SortedMap<Long, MaildirMessageName> recentMessageNames =
folder.getRecentMessages(mailboxSession);
+ return new ArrayList<Long>(recentMessageNames.keySet());
+
}
Modified:
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
(original)
+++
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
Fri Jun 17 11:02:19 2011
@@ -168,11 +168,11 @@ public class InMemoryMessageMapper exten
* (non-Javadoc)
* @see
org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox()
*/
- public List<Message<Long>> findRecentMessagesInMailbox(Mailbox<Long>
mailbox) throws MailboxException {
- final List<Message<Long>> results = new ArrayList<Message<Long>>();
+ public List<Long> findRecentMessageUidsInMailbox(Mailbox<Long> mailbox)
throws MailboxException {
+ final List<Long> results = new ArrayList<Long>();
for(Message<Long>
member:getMembershipByUidForMailbox(mailbox).values()) {
if (member.isRecent()) {
- results.add(member);
+ results.add(member.getUid());
}
}
Collections.sort(results);
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
(original)
+++
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
Fri Jun 17 11:02:19 2011
@@ -557,18 +557,17 @@ public abstract class StoreMessageManage
return messageMapper.execute(new Mapper.Transaction<List<Long>>() {
public List<Long> run() throws MailboxException {
- final List<Message<Id>> members =
messageMapper.findRecentMessagesInMailbox(getMailboxEntity());
- final List<Long> results = new ArrayList<Long>();
+ final List<Long> members =
messageMapper.findRecentMessageUidsInMailbox(getMailboxEntity());
- for (Message<Id> member:members) {
- results.add(member.getUid());
+ // Conver to MessageRanges so we may be able to optimize the
flag update
+ List<MessageRange> ranges = MessageRange.toRanges(members);
+ for (MessageRange range:ranges) {
if (reset) {
-
// only call save if we need to
- messageMapper.updateFlags(getMailboxEntity(), new
Flags(Flag.RECENT), false, false, MessageRange.one(member.getUid()));
+ messageMapper.updateFlags(getMailboxEntity(), new
Flags(Flag.RECENT), false, false, range);
}
}
- return results;
+ return members;
}
});
Modified:
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
URL:
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java?rev=1136842&r1=1136841&r2=1136842&view=diff
==============================================================================
---
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
(original)
+++
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
Fri Jun 17 11:02:19 2011
@@ -110,7 +110,7 @@ public interface MessageMapper<Id> exten
* @return recentList
* @throws StorageException
*/
- public abstract List<Message<Id>> findRecentMessagesInMailbox(Mailbox<Id>
mailbox) throws MailboxException;
+ public abstract List<Long> findRecentMessageUidsInMailbox(Mailbox<Id>
mailbox) throws MailboxException;
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]