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 2008/12/29 23:26:43 UTC

svn commit: r730006 - in /james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa: JPAMailbox.java om/BaseMailboxRow.java om/MailboxMapper.java om/MessageMapper.java

Author: rdonkin
Date: Mon Dec 29 14:26:43 2008
New Revision: 730006

URL: http://svn.apache.org/viewvc?rev=730006&view=rev
Log:
Use mailbox ID for queries

Modified:
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/BaseMailboxRow.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=730006&r1=730005&r2=730006&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java Mon Dec 29 14:26:43 2008
@@ -91,7 +91,7 @@
     public int getMessageCount(MailboxSession mailboxSession)
     throws MailboxManagerException {
         try {
-            return messageMapper.countMessages(getMailboxRow().getMailboxId());
+            return messageMapper.countMessages(mailboxId);
         } catch (Exception e) {
             throw new MailboxManagerException(e);
         }
@@ -115,7 +115,7 @@
                 long uid = mailbox.getLastUid();
 
                 MessageRow messageRow = new MessageRow();
-                messageRow.setMailboxId(getMailboxRow().getMailboxId());
+                messageRow.setMailboxId(mailboxId);
                 messageRow.setUid(uid);
                 messageRow.setInternalDate(internalDate);
 
@@ -200,15 +200,15 @@
     }
 
     private MailboxRow reserveNextUid() throws  MailboxManagerException {
-        final MailboxRow myMailboxRow;
+        final MailboxRow mailboxRow;
         try {
-            myMailboxRow = messageMapper.consumeNextUid(getMailboxRow().getMailboxId());
+            mailboxRow = messageMapper.consumeNextUid(mailboxId);
         } catch (TorqueException e) {
             throw new MailboxManagerException(e);
         } catch (SQLException e) {
             throw new MailboxManagerException(e);
         } 
-        return myMailboxRow;
+        return mailboxRow;
     }
 
 
@@ -216,7 +216,6 @@
             MailboxSession mailboxSession) throws MailboxManagerException {
         UidRange range = uidRangeForMessageSet(set);
         try {
-            final long mailboxId = getMailboxRow().getMailboxId();
             List rows = mapper.findInMailbox(set, mailboxId);
             return getMessages(fetchGroup, range, rows);
         } catch (TorqueException e) {
@@ -272,8 +271,7 @@
     public long[] recent(boolean reset, MailboxSession mailboxSession)
     throws MailboxManagerException {
         try {
-            final MailboxRow mailboxRow = getMailboxRow();
-            final List messageRows = messageMapper.findRecent(mailboxRow);
+            final List messageRows = messageMapper.findRecent(mailboxId);
             final long[] results = new long[messageRows.size()];
             int count = 0;
             for (Iterator it = messageRows.iterator(); it.hasNext();) {
@@ -282,7 +280,7 @@
             }
 
             if (reset) {
-                messageMapper.resetRecent(mailboxRow.getMailboxId());
+                messageMapper.resetRecent(mailboxId);
             }
             return results;
         } catch (TorqueException e) {
@@ -293,7 +291,7 @@
     public MessageResult getFirstUnseen(FetchGroup fetchGroup,
             MailboxSession mailboxSession) throws MailboxManagerException {
         try {
-            List messageRows = messageMapper.findUnseen(getMailboxRow());
+            List messageRows = messageMapper.findUnseen(mailboxId);
             if (messageRows.size() > 0) {
                 MessageResult messageResult = fillMessageResult(
                         (MessageRow) messageRows.get(0), fetchGroup);
@@ -316,7 +314,7 @@
     throws MailboxManagerException {
         try {
             final int count = messageMapper.countMessages(
-                    new Flags(Flags.Flag.SEEN), false, getMailboxRow().getMailboxId());
+                    new Flags(Flags.Flag.SEEN), false, mailboxId);
             return count;
         } catch (TorqueException e) {
             throw new MailboxManagerException(e);
@@ -334,9 +332,7 @@
     throws MailboxManagerException {
         try {
             // TODO put this into a serializable transaction
-            final MailboxRow mailboxRow = getMailboxRow();
-
-            final List messageRows = mapper.findMarkedForDeletionInMailbox(set, mailboxRow);
+            final List messageRows = mapper.findMarkedForDeletionInMailbox(set, mailboxId);
             final long[] uids = uids(messageRows);
             final OrFetchGroup orFetchGroup = new OrFetchGroup(fetchGroup,
                     FetchGroup.FLAGS);
@@ -378,7 +374,7 @@
             MailboxSession mailboxSession) throws MailboxManagerException {
         try {
             // TODO put this into a serializeable transaction
-            final List messageRows = mapper.findInMailbox(set, getMailboxRow().getMailboxId());
+            final List messageRows = mapper.findInMailbox(set, mailboxId);
             UidRange uidRange = uidRangeForMessageSet(set);
             getUidChangeTracker().found(uidRange,
                     MessageRowUtils.toMessageFlags(messageRows));
@@ -414,8 +410,7 @@
         }
     }
 
-    public void addListener(MailboxListener listener)
-    throws MailboxManagerException {
+    public void addListener(MailboxListener listener) throws MailboxManagerException {
         tracker.addMailboxListener(listener);
     }
 
@@ -423,8 +418,7 @@
         tracker.removeMailboxListener(mailboxListener);
     }
 
-    public long getUidValidity(MailboxSession mailboxSession)
-    throws MailboxManagerException {
+    public long getUidValidity(MailboxSession mailboxSession) throws MailboxManagerException {
         try {
             final long result = getMailboxRow().getUidValidity();
             return result;
@@ -434,8 +428,7 @@
 
     }
 
-    public long getUidNext(MailboxSession mailboxSession)
-    throws MailboxManagerException {
+    public long getUidNext(MailboxSession mailboxSession) throws MailboxManagerException {
         try {
             MailboxRow mailbox = getMailboxRow();
             if (mailbox != null) {
@@ -454,7 +447,7 @@
         return tracker;
     }
 
-    protected MailboxRow getMailboxRow() throws TorqueException {
+    private MailboxRow getMailboxRow() throws TorqueException {
         return mapper.findById(mailboxId);
     }
 
@@ -500,7 +493,7 @@
     public void copyTo(MessageRange set, JPAMailbox toMailbox,
             MailboxSession session) throws MailboxManagerException {
         try {
-            List rows = mapper.findInMailbox(set, getMailboxRow().getMailboxId());
+            List rows = mapper.findInMailbox(set, mailboxId);
             toMailbox.copy(rows, session);
         } catch (TorqueException e) {
             throw new MailboxManagerException(e);
@@ -528,7 +521,7 @@
                     long uid = mailbox.getLastUid();
 
                     MessageRow newRow = new MessageRow();
-                    newRow.setMailboxId(getMailboxRow().getMailboxId());
+                    newRow.setMailboxId(mailboxId);
                     newRow.setUid(uid);
                     newRow.setInternalDate(fromRow.getInternalDate());
                     newRow.setSize(fromRow.getSize());

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/BaseMailboxRow.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/BaseMailboxRow.java?rev=730006&r1=730005&r2=730006&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/BaseMailboxRow.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/BaseMailboxRow.java Mon Dec 29 14:26:43 2008
@@ -240,7 +240,7 @@
      * @return the collection of associated objects
      * @throws TorqueException
      */
-    public List getMessageRows() throws TorqueException {
+    List getMessageRows() throws TorqueException {
         if (collMessageRows == null) {
             collMessageRows = getMessageRows(new Criteria(10));
         }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java?rev=730006&r1=730005&r2=730006&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MailboxMapper.java Mon Dec 29 14:26:43 2008
@@ -70,10 +70,6 @@
                 Criteria.GREATER_THAN));
     }
 
-    public MailboxRow refresh(MailboxRow mailboxRow) throws TorqueException {
-        return MailboxRowPeer.retrieveByPK(mailboxRow.getPrimaryKey());
-    }
-
     public int countOnName(String mailboxName) throws TorqueException {
         int count;
         Criteria c = new Criteria();
@@ -91,14 +87,13 @@
         return rows;
     }
 
-    public List findMarkedForDeletionInMailbox(final MessageRange set, final MailboxRow mailboxRow) throws TorqueException, MailboxManagerException {
-        final Criteria c = criteriaForMessageSet(set);
-        c.addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
-        c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
-        c.add(MessageRowPeer.MAILBOX_ID, mailboxRow.getMailboxId());
-        c.add(MessageFlagsPeer.DELETED, true);
-
-        final List messageRows = mailboxRow.getMessageRows(c);
+    public List findMarkedForDeletionInMailbox(final MessageRange set, final long mailboxId) throws TorqueException, MailboxManagerException {
+        final Criteria criteria = criteriaForMessageSet(set);
+        criteria.addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
+        criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+        criteria.add(MessageFlagsPeer.DELETED, true);
+        criteria.add(MessageRowPeer.MAILBOX_ID, mailboxId);
+        final List messageRows = MessageRowPeer.doSelect(criteria);
         return messageRows;
     }
 

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java?rev=730006&r1=730005&r2=730006&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java Mon Dec 29 14:26:43 2008
@@ -145,31 +145,34 @@
         MessageRowPeer.doDelete(todelc);
     }
     
-    public List findUnseen(MailboxRow row) throws TorqueException {
-        Criteria c = new Criteria();
-        c.addAscendingOrderByColumn(MessageRowPeer.UID);
-        c.setLimit(1);
-        c.setSingleRecord(true);
+    public List findUnseen(final long mailboxId) throws TorqueException {
+        Criteria criteria = new Criteria();
+        criteria.addAscendingOrderByColumn(MessageRowPeer.UID);
+        criteria.setLimit(1);
+        criteria.setSingleRecord(true);
 
-        c.addJoin(MessageFlagsPeer.MAILBOX_ID,
+        criteria.addJoin(MessageFlagsPeer.MAILBOX_ID,
                 MessageRowPeer.MAILBOX_ID);
-        c.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+        criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
 
-        MessageMapper.addFlagsToCriteria(new Flags(Flags.Flag.SEEN),
-                false, c);
-        List messageRows = row.getMessageRows(c);
+        MessageMapper.addFlagsToCriteria(new Flags(Flags.Flag.SEEN), false, criteria);
+        criteria.add(MessageRowPeer.MAILBOX_ID, mailboxId);
+        
+        final List messageRows = MessageRowPeer.doSelect(criteria);
         return messageRows;
     }
     
-    public List findRecent(final MailboxRow mailboxRow) throws TorqueException {
-        final Criteria criterion = new Criteria();
-        criterion.addJoin(MessageFlagsPeer.MAILBOX_ID,
+    public List findRecent(final long mailboxId) throws TorqueException {
+        final Criteria criteria = new Criteria();
+        criteria.addJoin(MessageFlagsPeer.MAILBOX_ID,
                 MessageRowPeer.MAILBOX_ID);
-        criterion.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+        criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
         
         MessageMapper.addFlagsToCriteria(new Flags(Flags.Flag.RECENT), true,
-                criterion);
-        final List messageRows = mailboxRow.getMessageRows(criterion);
+                criteria);
+        criteria.add(MessageRowPeer.MAILBOX_ID, mailboxId);
+        
+        final List messageRows = MessageRowPeer.doSelect(criteria);
         return messageRows;
     }
     



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