Author: rdonkin
Date: Tue Jun 2 12:50:38 2009
New Revision: 781024
URL: http://svn.apache.org/viewvc?rev=781024&view=rev
Log:
IMAP-95 Alter MessageMapper API to tie it implicitly to a particular mailbox
rather than passing in the ID. https://issues.apache.org/jira/browse/IMAP-95
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=781024&r1=781023&r2=781024&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
Tue Jun 2 12:50:38 2009
@@ -61,7 +61,7 @@
@Override
protected MessageMapper createMessageMapper() {
- final MessageMapper mapper = new
JPAMessageMapper(entityManagerFactory.createEntityManager());
+ final MessageMapper mapper = new
JPAMessageMapper(entityManagerFactory.createEntityManager(), mailboxId);
return mapper;
}
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java?rev=781024&r1=781023&r2=781024&view=diff
==============================================================================
---
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
(original)
+++
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
Tue Jun 2 12:50:38 2009
@@ -34,14 +34,17 @@
public class JPAMessageMapper extends Mapper implements MessageMapper {
- public JPAMessageMapper(EntityManager entityManager) {
+ private final long mailboxId;
+
+ public JPAMessageMapper(final EntityManager entityManager, final long
mailboxId) {
super(entityManager);
+ this.mailboxId = mailboxId;
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache.james.imap.mailbox.MessageRange,
long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache.james.imap.mailbox.MessageRange)
*/
- public List<MailboxMembership> findInMailbox(MessageRange set, long
mailboxId) throws StorageException {
+ public List<MailboxMembership> findInMailbox(MessageRange set) throws
StorageException {
try {
final List<MailboxMembership> results;
switch (set.getType()) {
@@ -96,9 +99,9 @@
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange,
long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange)
*/
- public List<MailboxMembership> findMarkedForDeletionInMailbox(final
MessageRange set, final long mailboxId) throws StorageException {
+ public List<MailboxMembership> findMarkedForDeletionInMailbox(final
MessageRange set) throws StorageException {
try {
final List<MailboxMembership> results;
switch (set.getType()) {
@@ -153,9 +156,9 @@
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#countMessagesInMailbox(long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#countMessagesInMailbox()
*/
- public long countMessagesInMailbox(long mailboxId) throws StorageException
{
+ public long countMessagesInMailbox() throws StorageException {
try {
return (Long)
entityManager.createNamedQuery("countMessagesInMailbox").setParameter("idParam",
mailboxId).getSingleResult();
} catch (PersistenceException e) {
@@ -164,9 +167,9 @@
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#countUnseenMessagesInMailbox(long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#countUnseenMessagesInMailbox()
*/
- public long countUnseenMessagesInMailbox(long mailboxId) throws
StorageException {
+ public long countUnseenMessagesInMailbox() throws StorageException {
try {
return (Long)
entityManager.createNamedQuery("countUnseenMessagesInMailbox").setParameter("idParam",
mailboxId).getSingleResult();
} catch (PersistenceException e) {
@@ -175,10 +178,10 @@
}
/**
- * @see org.apache.james.imap.store.mail.MessageMapper#searchMailbox(long,
org.apache.james.imap.mailbox.SearchQuery)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#searchMailbox(org.apache.james.imap.mailbox.SearchQuery)
*/
@SuppressWarnings("unchecked")
- public List<MailboxMembership> searchMailbox(long mailboxId, SearchQuery
query) throws StorageException {
+ public List<MailboxMembership> searchMailbox(SearchQuery query) throws
StorageException {
try {
final String jql = formulateJQL(mailboxId, query);
return entityManager.createQuery(jql).getResultList();
@@ -226,10 +229,10 @@
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailboxOrderByUid(long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailboxOrderByUid()
*/
@SuppressWarnings("unchecked")
- public List<MailboxMembership> findUnseenMessagesInMailboxOrderByUid(final
long mailboxId) throws StorageException {
+ public List<MailboxMembership> findUnseenMessagesInMailboxOrderByUid()
throws StorageException {
try {
return
entityManager.createNamedQuery("findUnseenMessagesInMailboxOrderByUid").setParameter("idParam",
mailboxId).getResultList();
} catch (PersistenceException e) {
@@ -238,10 +241,10 @@
}
/**
- * @see
org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox(long)
+ * @see
org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox()
*/
@SuppressWarnings("unchecked")
- public List<MailboxMembership> findRecentMessagesInMailbox(final long
mailboxId) throws StorageException {
+ public List<MailboxMembership> findRecentMessagesInMailbox() throws
StorageException {
try {
return
entityManager.createNamedQuery("findRecentMessagesInMailbox").setParameter("idParam",
mailboxId).getResultList();
} catch (PersistenceException e) {
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=781024&r1=781023&r2=781024&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
Tue Jun 2 12:50:38 2009
@@ -84,7 +84,7 @@
public int getMessageCount(MailboxSession mailboxSession) throws
MailboxException {
final MessageMapper messageMapper = createMessageMapper();
- return (int) messageMapper.countMessagesInMailbox(mailboxId);
+ return (int) messageMapper.countMessagesInMailbox();
}
public long appendMessage(byte[] messageBytes, Date internalDate,
@@ -242,7 +242,7 @@
MailboxSession mailboxSession) throws MailboxException {
UidRange range = uidRangeForMessageSet(set);
final MessageMapper messageMapper = createMessageMapper();
- final List<MailboxMembership> rows = new
ArrayList<MailboxMembership>(messageMapper.findInMailbox(set, mailboxId));
+ final List<MailboxMembership> rows = new
ArrayList<MailboxMembership>(messageMapper.findInMailbox(set));
return getMessages(fetchGroup, range, rows);
}
@@ -291,7 +291,7 @@
public long[] recent(boolean reset, MailboxSession mailboxSession) throws
MailboxException {
final MessageMapper mapper = createMessageMapper();
mapper.begin();
- final List<MailboxMembership> members =
mapper.findRecentMessagesInMailbox(mailboxId);
+ final List<MailboxMembership> members =
mapper.findRecentMessagesInMailbox();
final long[] results = new long[members.size()];
int count = 0;
@@ -309,7 +309,7 @@
public Long getFirstUnseen(MailboxSession mailboxSession) throws
MailboxException {
try {
final MessageMapper messageMapper = createMessageMapper();
- final List<MailboxMembership> members =
messageMapper.findUnseenMessagesInMailboxOrderByUid(mailboxId);
+ final List<MailboxMembership> members =
messageMapper.findUnseenMessagesInMailboxOrderByUid();
final Iterator<MailboxMembership> it = members.iterator();
final Long result;
if (it.hasNext()) {
@@ -327,7 +327,7 @@
public int getUnseenCount(MailboxSession mailboxSession) throws
MailboxException {
final MessageMapper messageMapper = createMessageMapper();
- final int count = (int)
messageMapper.countUnseenMessagesInMailbox(mailboxId);
+ final int count = (int) messageMapper.countUnseenMessagesInMailbox();
return count;
}
@@ -339,7 +339,7 @@
throws MailboxException {
final MessageMapper mapper = createMessageMapper();
mapper.begin();
- final List<MailboxMembership> members =
mapper.findMarkedForDeletionInMailbox(set, mailboxId);
+ final List<MailboxMembership> members =
mapper.findMarkedForDeletionInMailbox(set);
final Collection<Long> uids = new TreeSet<Long>();
for (MailboxMembership message:members) {
uids.add(message.getUid());
@@ -361,7 +361,7 @@
final SortedMap<Long, Flags> newFlagsByUid = new TreeMap<Long,
Flags>();
final Map<Long, Flags> originalFlagsByUid = new HashMap<Long,
Flags>(INITIAL_SIZE_FLAGS);
mapper.begin();
- final List<MailboxMembership> members = mapper.findInMailbox(set,
mailboxId);
+ final List<MailboxMembership> members = mapper.findInMailbox(set);
for (final MailboxMembership member:members) {
originalFlagsByUid.put(member.getUid(), member.createFlags());
if (replace) {
@@ -404,7 +404,7 @@
public Iterator<Long> search(SearchQuery query, MailboxSession
mailboxSession) throws MailboxException {
final MessageMapper messageMapper = createMessageMapper();
- final List<MailboxMembership> members =
messageMapper.searchMailbox(mailboxId, query);
+ final List<MailboxMembership> members =
messageMapper.searchMailbox(query);
final Set<Long> uids = new TreeSet<Long>();
for (MailboxMembership member:members) {
try {
@@ -436,7 +436,7 @@
mapper.begin();
final List<MailboxMembership> copiedRows = new
ArrayList<MailboxMembership>();
- final List<MailboxMembership> originalRows =
mapper.findInMailbox(set, mailboxId);
+ final List<MailboxMembership> originalRows =
mapper.findInMailbox(set);
for (MailboxMembership originalMessage:originalRows) {
final Mailbox mailbox = toMailbox.reserveNextUid();
Modified:
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
URL:
http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java?rev=781024&r1=781023&r2=781024&view=diff
==============================================================================
---
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
(original)
+++
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
Tue Jun 2 12:50:38 2009
@@ -25,38 +25,38 @@
import org.apache.james.imap.mailbox.StorageException;
import org.apache.james.imap.store.mail.model.MailboxMembership;
+/**
+ * Maps messages in a mailbox.
+ */
public interface MessageMapper {
public abstract void begin() throws StorageException;
public abstract void commit() throws StorageException;
- public abstract List<MailboxMembership> findInMailbox(MessageRange set,
long mailboxId)
+ public abstract List<MailboxMembership> findInMailbox(MessageRange set)
throws StorageException;
public abstract List<MailboxMembership> findMarkedForDeletionInMailbox(
- final MessageRange set, final long mailboxId)
+ final MessageRange set)
throws StorageException;
- public abstract long countMessagesInMailbox(long mailboxId)
+ public abstract long countMessagesInMailbox()
throws StorageException;
- public abstract long countUnseenMessagesInMailbox(long mailboxId)
+ public abstract long countUnseenMessagesInMailbox()
throws StorageException;
@SuppressWarnings("unchecked")
- public abstract List<MailboxMembership> searchMailbox(long mailboxId,
- SearchQuery query) throws StorageException;
+ public abstract List<MailboxMembership> searchMailbox(SearchQuery query)
throws StorageException;
public abstract void delete(MailboxMembership message) throws
StorageException;
@SuppressWarnings("unchecked")
- public abstract List<MailboxMembership>
findUnseenMessagesInMailboxOrderByUid(
- final long mailboxId) throws StorageException;
+ public abstract List<MailboxMembership>
findUnseenMessagesInMailboxOrderByUid() throws StorageException;
@SuppressWarnings("unchecked")
- public abstract List<MailboxMembership> findRecentMessagesInMailbox(
- final long mailboxId) throws StorageException;
+ public abstract List<MailboxMembership> findRecentMessagesInMailbox()
throws StorageException;
public abstract void save(MailboxMembership message) throws
StorageException;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]