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 12:10:16 UTC

svn commit: r729862 - in /james/protocols/imap/trunk: deployment/src/test/java/org/apache/james/imap/functional/jpa/ deployment/src/test/java/org/apache/james/mailboxmanager/torque/ jpa/src/main/java/org/apache/james/imap/jpa/ jpa/src/main/java/org/apa...

Author: rdonkin
Date: Mon Dec 29 03:10:15 2008
New Revision: 729862

URL: http://svn.apache.org/viewvc?rev=729862&view=rev
Log:
Move public methods from peers into mappers

Modified:
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxManagerSelfTestCase.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TestUtil.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTest.java
    james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java
    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/Init.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/MessageHeaderPeer.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageMapper.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageRowPeer.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageHeaderMapBuilder.java
    james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageRowMapBuilder.java
    james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java
    james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java
    james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/imap/functional/jpa/SimpleUserManager.java Mon Dec 29 03:10:15 2008
@@ -23,8 +23,8 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.james.mailboxmanager.manager.SubscriptionException;
 import org.apache.james.imap.jpa.UserManager;
+import org.apache.james.mailboxmanager.manager.SubscriptionException;
 
 public class SimpleUserManager implements UserManager {
 

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxManagerSelfTestCase.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxManagerSelfTestCase.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxManagerSelfTestCase.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxManagerSelfTestCase.java Mon Dec 29 03:10:15 2008
@@ -20,10 +20,10 @@
 package org.apache.james.mailboxmanager.torque;
 
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
+
+import junit.framework.TestCase;
 
 import org.apache.james.mailboxmanager.ListResult;
 import org.apache.james.mailboxmanager.MailboxManagerException;
@@ -31,8 +31,6 @@
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 
-import junit.framework.TestCase;
-
 public abstract class AbstractMailboxManagerSelfTestCase extends TestCase {
 
     protected MailboxManager mailboxManager;

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/AbstractMailboxSelfTestCase.java Mon Dec 29 03:10:15 2008
@@ -34,8 +34,8 @@
 import org.apache.james.mailboxmanager.MailboxSession;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
-import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.impl.MailboxListenerCollector;
+import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.mailbox.Mailbox;
 import org.apache.james.mailboxmanager.manager.MailboxManager;
 

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/SimpleUserManager.java Mon Dec 29 03:10:15 2008
@@ -24,7 +24,6 @@
 import java.util.Map;
 
 import org.apache.james.mailboxmanager.manager.SubscriptionException;
-import org.apache.james.mailboxmanager.torque.UserManager;
 
 public class SimpleUserManager implements UserManager {
 

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TestUtil.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TestUtil.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TestUtil.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TestUtil.java Mon Dec 29 03:10:15 2008
@@ -19,9 +19,6 @@
 
 package org.apache.james.mailboxmanager.torque;
 
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.apache.james.mailboxmanager.torque.CRLFOutputStream;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.Arrays;
@@ -37,6 +34,8 @@
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
 public class TestUtil {
 
     private static Random random;

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerProviderSingleton.java Mon Dec 29 03:10:15 2008
@@ -29,7 +29,6 @@
 import org.apache.james.imap.functional.ImapHostSystem;
 import org.apache.james.imap.functional.SimpleMailboxManagerProvider;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
-import org.apache.james.mailboxmanager.torque.TorqueMailboxManager;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageBodyPeer;
 import org.apache.james.mailboxmanager.torque.om.MessageFlagsPeer;

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTest.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTest.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTest.java Mon Dec 29 03:10:15 2008
@@ -28,8 +28,8 @@
 import org.apache.commons.collections.IteratorUtils;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
-import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.impl.MailboxListenerCollector;
+import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.mailbox.Mailbox;
 import org.apache.james.mailboxmanager.torque.om.MailboxRow;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;

Modified: james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java (original)
+++ james/protocols/imap/trunk/deployment/src/test/java/org/apache/james/mailboxmanager/torque/TorqueMailboxTestCase.java Mon Dec 29 03:10:15 2008
@@ -28,8 +28,8 @@
 import org.apache.commons.collections.IteratorUtils;
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
-import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.impl.MailboxListenerCollector;
+import org.apache.james.mailboxmanager.impl.MessageRangeImpl;
 import org.apache.james.mailboxmanager.mailbox.Mailbox;
 import org.apache.james.mailboxmanager.torque.om.MailboxRow;
 import org.apache.james.mailboxmanager.torque.om.MailboxRowPeer;

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=729862&r1=729861&r2=729862&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 03:10:15 2008
@@ -45,7 +45,6 @@
 import org.apache.james.imap.jpa.om.MessageHeader;
 import org.apache.james.imap.jpa.om.MessageMapper;
 import org.apache.james.imap.jpa.om.MessageRow;
-import org.apache.james.imap.jpa.om.MessageRowPeer;
 import org.apache.james.mailboxmanager.MailboxListener;
 import org.apache.james.mailboxmanager.MailboxManagerException;
 import org.apache.james.mailboxmanager.MailboxSession;
@@ -53,8 +52,6 @@
 import org.apache.james.mailboxmanager.MessageResult;
 import org.apache.james.mailboxmanager.SearchQuery;
 import org.apache.james.mailboxmanager.MessageResult.FetchGroup;
-import org.apache.james.mailboxmanager.SearchQuery.Criterion;
-import org.apache.james.mailboxmanager.SearchQuery.NumericRange;
 import org.apache.james.mailboxmanager.impl.FetchGroupImpl;
 import org.apache.james.mailboxmanager.impl.UidChangeTracker;
 import org.apache.james.mailboxmanager.mailbox.Mailbox;
@@ -62,7 +59,6 @@
 import org.apache.torque.NoRowsException;
 import org.apache.torque.TooManyRowsException;
 import org.apache.torque.TorqueException;
-import org.apache.torque.util.Criteria;
 
 import EDU.oswego.cs.dl.util.concurrent.ReadWriteLock;
 
@@ -442,12 +438,7 @@
 
             for (Iterator iter = messageRows.iterator(); iter.hasNext();) {
                 MessageRow messageRow = (MessageRow) iter.next();
-                Criteria todelc = new Criteria();
-                todelc
-                        .add(MessageRowPeer.MAILBOX_ID, messageRow
-                                .getMailboxId());
-                todelc.add(MessageRowPeer.UID, messageRow.getUid());
-                MessageRowPeer.doDelete(todelc);
+                messageMapper.delete(messageRow);
             }
             getUidChangeTracker().expunged(uids);
             return messageResults.iterator();
@@ -456,7 +447,6 @@
         }
     }
 
-
     private long[] uids(List messageRows) {
         final int size = messageRows.size();
         long[] results = new long[size];
@@ -615,9 +605,7 @@
             try {
                 checkAccess();
 
-                final Criteria criterion = preSelect(query);
-                final List rows = MessageRowPeer
-                        .doSelectJoinMessageFlags(criterion);
+                final List rows = messageMapper.find(query);
                 final List filteredMessages = new ArrayList();
                 for (Iterator it = rows.iterator(); it.hasNext();) {
                     final MessageRow row = (MessageRow) it.next();
@@ -646,43 +634,7 @@
         }
     }
 
-    private Criteria preSelect(SearchQuery query) {
-        final Criteria results = new Criteria();
-        final List criteria = query.getCriterias();
-        if (criteria.size() == 1) {
-            final Criterion criterion = (Criterion) criteria.get(0);
-            if (criterion instanceof SearchQuery.UidCriterion) {
-                final SearchQuery.UidCriterion uidCriterion = (SearchQuery.UidCriterion) criterion;
-                preSelectUid(results, uidCriterion);
-            }
-        }
-        return results;
-    }
 
-    private void preSelectUid(final Criteria results,
-            final SearchQuery.UidCriterion uidCriterion) {
-        final NumericRange[] ranges = uidCriterion.getOperator().getRange();
-        for (int i = 0; i < ranges.length; i++) {
-            final long low = ranges[i].getLowValue();
-            final long high = ranges[i].getHighValue();
-            if (low == Long.MAX_VALUE) {
-                results.add(MessageRowPeer.UID, high, Criteria.LESS_EQUAL);
-            } else if (low == high) {
-                results.add(MessageRowPeer.UID, low);
-            } else {
-                final Criteria.Criterion fromCriterion = results
-                        .getNewCriterion(MessageRowPeer.UID, new Long(low),
-                                Criteria.GREATER_EQUAL);
-                if (high > 0 && high < Long.MAX_VALUE) {
-                    final Criteria.Criterion toCriterion = results
-                            .getNewCriterion(MessageRowPeer.UID,
-                                    new Long(high), Criteria.LESS_EQUAL);
-                    fromCriterion.and(toCriterion);
-                }
-                results.add(fromCriterion);
-            }
-        }
-    }
 
     public boolean isWriteable() {
         return true;

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/Init.java Mon Dec 29 03:10:15 2008
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.imap.jpa.om;
 
+import java.util.Date;
+
 import org.apache.torque.TorqueException;
 import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.TableMap;
@@ -327,4 +329,162 @@
         tMap.addColumn(cMap);
         tMap.setUseInheritance(false);
     }
+    
+    public static void populateMessageHeader(TableMap tMap) {
+        tMap.setJavaName("MessageHeader");
+        tMap
+                .setOMClass(org.apache.james.imap.jpa.om.MessageHeader.class);
+        tMap
+                .setPeerClass(org.apache.james.imap.jpa.om.MessageHeaderPeer.class);
+        tMap.setPrimaryKeyMethod("none");
+
+        ColumnMap cMap = null;
+
+        // ------------- Column: mailbox_id --------------------
+        cMap = new ColumnMap("mailbox_id", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("MailboxId");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("Mailbox Id");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "mailbox_id");
+        cMap.setPosition(1);
+        tMap.addColumn(cMap);
+        // ------------- Column: uid --------------------
+        cMap = new ColumnMap("uid", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Uid");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("message", "uid");
+        cMap.setPosition(2);
+        tMap.addColumn(cMap);
+        // ------------- Column: line_number --------------------
+        cMap = new ColumnMap("line_number", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("INTEGER");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("LineNumber");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("");
+        cMap.setInheritance("false");
+        cMap.setPosition(3);
+        tMap.addColumn(cMap);
+        // ------------- Column: field --------------------
+        cMap = new ColumnMap("field", tMap);
+        cMap.setType("");
+        cMap.setTorqueType("VARCHAR");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Field");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("field");
+        cMap.setInheritance("false");
+        cMap.setSize(256);
+        cMap.setPosition(4);
+        tMap.addColumn(cMap);
+        // ------------- Column: value --------------------
+        cMap = new ColumnMap("value", tMap);
+        cMap.setType("");
+        cMap.setTorqueType("VARCHAR");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Value");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("value");
+        cMap.setInheritance("false");
+        cMap.setSize(1024);
+        cMap.setPosition(5);
+        tMap.addColumn(cMap);
+        tMap.setUseInheritance(false);
+    }
+    
+    public static void populateMessageRow(TableMap tMap) {
+        tMap.setJavaName("MessageRow");
+        tMap
+                .setOMClass(org.apache.james.imap.jpa.om.MessageRow.class);
+        tMap
+                .setPeerClass(org.apache.james.imap.jpa.om.MessageRowPeer.class);
+        tMap.setDescription("");
+        tMap.setPrimaryKeyMethod("none");
+
+        ColumnMap cMap = null;
+
+        // ------------- Column: mailbox_id --------------------
+        cMap = new ColumnMap("mailbox_id", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("MailboxId");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("Mailbox Id");
+        cMap.setInheritance("false");
+        cMap.setForeignKey("mailbox", "mailbox_id");
+        cMap.setPosition(1);
+        tMap.addColumn(cMap);
+        // ------------- Column: uid --------------------
+        cMap = new ColumnMap("uid", tMap);
+        cMap.setType(new Long(0));
+        cMap.setTorqueType("BIGINT");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(true);
+        cMap.setNotNull(true);
+        cMap.setJavaName("Uid");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("the last used uid (default 0)");
+        cMap.setInheritance("false");
+        cMap.setPosition(2);
+        tMap.addColumn(cMap);
+        // ------------- Column: internal_date --------------------
+        cMap = new ColumnMap("internal_date", tMap);
+        cMap.setType(new Date());
+        cMap.setTorqueType("DATE");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(false);
+        cMap.setJavaName("InternalDate");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("internal date");
+        cMap.setInheritance("false");
+        cMap.setPosition(3);
+        tMap.addColumn(cMap);
+        // ------------- Column: size --------------------
+        cMap = new ColumnMap("size", tMap);
+        cMap.setType(new Integer(0));
+        cMap.setTorqueType("INTEGER");
+        cMap.setUsePrimitive(true);
+        cMap.setPrimaryKey(false);
+        cMap.setNotNull(false);
+        cMap.setJavaName("Size");
+        cMap.setAutoIncrement(false);
+        cMap.setProtected(false);
+        cMap.setDescription("message size");
+        cMap.setInheritance("false");
+        cMap.setPosition(4);
+        tMap.addColumn(cMap);
+        tMap.setUseInheritance(false);
+    }
 }

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=729862&r1=729861&r2=729862&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 03:10:15 2008
@@ -83,7 +83,7 @@
     public List findInMailbox(MessageRange set, long mailboxId) throws MailboxManagerException, TorqueException {
         Criteria c = criteriaForMessageSet(set);
         c.add(MessageFlagsPeer.MAILBOX_ID, mailboxId);
-        List rows = MessageRowPeer.doSelectJoinMessageFlags(c);
+        List rows = MessageMapper.doSelectJoinMessageFlags(c);
         return rows;
     }
     

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageHeaderPeer.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageHeaderPeer.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageHeaderPeer.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageHeaderPeer.java Mon Dec 29 03:10:15 2008
@@ -27,7 +27,7 @@
  * requirements. This class will only be generated as long as it does not
  * already exist in the output directory.
  */
-public class MessageHeaderPeer extends
+class MessageHeaderPeer extends
         org.apache.james.imap.jpa.om.BaseMessageHeaderPeer {
 
     /**

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=729862&r1=729861&r2=729862&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 03:10:15 2008
@@ -18,16 +18,78 @@
  ****************************************************************/
 package org.apache.james.imap.jpa.om;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.mail.Flags;
-import javax.mail.Flags.Flag;
 
+import org.apache.james.mailboxmanager.SearchQuery;
+import org.apache.james.mailboxmanager.SearchQuery.Criterion;
+import org.apache.james.mailboxmanager.SearchQuery.NumericRange;
 import org.apache.torque.TorqueException;
+import org.apache.torque.util.BasePeer;
 import org.apache.torque.util.Criteria;
 
+import com.workingdogs.village.Record;
+
 public class MessageMapper {
     
+
+    public List find(SearchQuery query) throws TorqueException {
+        final Criteria criterion = preSelect(query);
+        final List rows = MessageMapper
+                .doSelectJoinMessageFlags(criterion);
+        return rows;
+    }
+    
+    private Criteria preSelect(SearchQuery query) {
+        final Criteria results = new Criteria();
+        final List criteria = query.getCriterias();
+        if (criteria.size() == 1) {
+            final Criterion criterion = (Criterion) criteria.get(0);
+            if (criterion instanceof SearchQuery.UidCriterion) {
+                final SearchQuery.UidCriterion uidCriterion = (SearchQuery.UidCriterion) criterion;
+                preSelectUid(results, uidCriterion);
+            }
+        }
+        return results;
+    }
+
+    
+    private void preSelectUid(final Criteria results,
+            final SearchQuery.UidCriterion uidCriterion) {
+        final NumericRange[] ranges = uidCriterion.getOperator().getRange();
+        for (int i = 0; i < ranges.length; i++) {
+            final long low = ranges[i].getLowValue();
+            final long high = ranges[i].getHighValue();
+            if (low == Long.MAX_VALUE) {
+                results.add(MessageRowPeer.UID, high, Criteria.LESS_EQUAL);
+            } else if (low == high) {
+                results.add(MessageRowPeer.UID, low);
+            } else {
+                final Criteria.Criterion fromCriterion = results
+                        .getNewCriterion(MessageRowPeer.UID, new Long(low),
+                                Criteria.GREATER_EQUAL);
+                if (high > 0 && high < Long.MAX_VALUE) {
+                    final Criteria.Criterion toCriterion = results
+                            .getNewCriterion(MessageRowPeer.UID,
+                                    new Long(high), Criteria.LESS_EQUAL);
+                    fromCriterion.and(toCriterion);
+                }
+                results.add(fromCriterion);
+            }
+        }
+    }
+    
+    public void delete(MessageRow messageRow) throws TorqueException {
+        Criteria todelc = new Criteria();
+        todelc
+                .add(MessageRowPeer.MAILBOX_ID, messageRow
+                        .getMailboxId());
+        todelc.add(MessageRowPeer.UID, messageRow.getUid());
+        MessageRowPeer.doDelete(todelc);
+    }
+    
     public List findUnseen(MailboxRow row) throws TorqueException {
         Criteria c = new Criteria();
         c.addAscendingOrderByColumn(MessageRowPeer.UID);
@@ -56,6 +118,37 @@
         return messageRows;
     }
     
+    static List doSelectJoinMessageFlags(Criteria criteria)
+            throws TorqueException {
+    
+        MessageRowPeer.addSelectColumns(criteria);
+        int offset = MessageRowPeer.numColumns + 1;
+        MessageFlagsPeer.addSelectColumns(criteria);
+    
+        criteria
+                .addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
+        criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
+    
+        List rows = BasePeer.doSelect(criteria);
+        List result = new ArrayList(rows.size());
+    
+        for (int i = 0; i < rows.size(); i++) {
+            Record row = (Record) rows.get(i);
+    
+            Class omClass = MessageRowPeer.getOMClass();
+            MessageRow messageRow = (MessageRow) MessageRowPeer.row2Object(row,
+                    1, omClass);
+    
+            omClass = MessageFlagsPeer.getOMClass();
+            MessageFlags messageFlags = (MessageFlags) MessageFlagsPeer
+                    .row2Object(row, offset, omClass);
+            messageRow.setMessageFlags(messageFlags);
+    
+            result.add(messageRow);
+        }
+        return result;
+    }
+
     static void addFlagsToCriteria(Flags flags, boolean value, Criteria c) {
         if (flags.contains(Flags.Flag.ANSWERED)) {
             c.add(MessageFlagsPeer.ANSWERED, value);

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageRowPeer.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageRowPeer.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageRowPeer.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/MessageRowPeer.java Mon Dec 29 03:10:15 2008
@@ -19,14 +19,8 @@
 
 package org.apache.james.imap.jpa.om;
 
-import java.util.ArrayList;
-import java.util.List;
 
-import org.apache.torque.TorqueException;
-import org.apache.torque.util.BasePeer;
-import org.apache.torque.util.Criteria;
 
-import com.workingdogs.village.Record;
 
 /**
  * The skeleton for this class was autogenerated by Torque on:
@@ -37,7 +31,7 @@
  * requirements. This class will only be generated as long as it does not
  * already exist in the output directory.
  */
-public class MessageRowPeer extends
+class MessageRowPeer extends
         org.apache.james.imap.jpa.om.BaseMessageRowPeer {
 
     /**
@@ -45,35 +39,4 @@
      */
     private static final long serialVersionUID = 1708650986440774692L;
 
-    public static List doSelectJoinMessageFlags(Criteria criteria)
-            throws TorqueException {
-
-        MessageRowPeer.addSelectColumns(criteria);
-        int offset = numColumns + 1;
-        MessageFlagsPeer.addSelectColumns(criteria);
-
-        criteria
-                .addJoin(MessageRowPeer.MAILBOX_ID, MessageFlagsPeer.MAILBOX_ID);
-        criteria.addJoin(MessageRowPeer.UID, MessageFlagsPeer.UID);
-
-        List rows = BasePeer.doSelect(criteria);
-        List result = new ArrayList(rows.size());
-
-        for (int i = 0; i < rows.size(); i++) {
-            Record row = (Record) rows.get(i);
-
-            Class omClass = MessageRowPeer.getOMClass();
-            MessageRow messageRow = (MessageRow) MessageRowPeer.row2Object(row,
-                    1, omClass);
-
-            omClass = MessageFlagsPeer.getOMClass();
-            MessageFlags messageFlags = (MessageFlags) MessageFlagsPeer
-                    .row2Object(row, offset, omClass);
-            messageRow.setMessageFlags(messageFlags);
-
-            result.add(messageRow);
-        }
-        return result;
-    }
-
 }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageFlagsMapBuilder.java Mon Dec 29 03:10:15 2008
@@ -3,7 +3,6 @@
 import org.apache.james.imap.jpa.om.Init;
 import org.apache.torque.Torque;
 import org.apache.torque.TorqueException;
-import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.DatabaseMap;
 import org.apache.torque.map.MapBuilder;
 import org.apache.torque.map.TableMap;

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageHeaderMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageHeaderMapBuilder.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageHeaderMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageHeaderMapBuilder.java Mon Dec 29 03:10:15 2008
@@ -1,8 +1,8 @@
 package org.apache.james.imap.jpa.om.map;
 
+import org.apache.james.imap.jpa.om.Init;
 import org.apache.torque.Torque;
 import org.apache.torque.TorqueException;
-import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.DatabaseMap;
 import org.apache.torque.map.MapBuilder;
 import org.apache.torque.map.TableMap;
@@ -56,89 +56,7 @@
 
         dbMap.addTable("message_header");
         TableMap tMap = dbMap.getTable("message_header");
-        tMap.setJavaName("MessageHeader");
-        tMap
-                .setOMClass(org.apache.james.imap.jpa.om.MessageHeader.class);
-        tMap
-                .setPeerClass(org.apache.james.imap.jpa.om.MessageHeaderPeer.class);
-        tMap.setPrimaryKeyMethod("none");
-
-        ColumnMap cMap = null;
-
-        // ------------- Column: mailbox_id --------------------
-        cMap = new ColumnMap("mailbox_id", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("MailboxId");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("Mailbox Id");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "mailbox_id");
-        cMap.setPosition(1);
-        tMap.addColumn(cMap);
-        // ------------- Column: uid --------------------
-        cMap = new ColumnMap("uid", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Uid");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("message", "uid");
-        cMap.setPosition(2);
-        tMap.addColumn(cMap);
-        // ------------- Column: line_number --------------------
-        cMap = new ColumnMap("line_number", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("INTEGER");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("LineNumber");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("");
-        cMap.setInheritance("false");
-        cMap.setPosition(3);
-        tMap.addColumn(cMap);
-        // ------------- Column: field --------------------
-        cMap = new ColumnMap("field", tMap);
-        cMap.setType("");
-        cMap.setTorqueType("VARCHAR");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Field");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("field");
-        cMap.setInheritance("false");
-        cMap.setSize(256);
-        cMap.setPosition(4);
-        tMap.addColumn(cMap);
-        // ------------- Column: value --------------------
-        cMap = new ColumnMap("value", tMap);
-        cMap.setType("");
-        cMap.setTorqueType("VARCHAR");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Value");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("value");
-        cMap.setInheritance("false");
-        cMap.setSize(1024);
-        cMap.setPosition(5);
-        tMap.addColumn(cMap);
-        tMap.setUseInheritance(false);
+        Init.populateMessageHeader(tMap);
     }
+
 }

Modified: james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageRowMapBuilder.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageRowMapBuilder.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageRowMapBuilder.java (original)
+++ james/protocols/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/om/map/MessageRowMapBuilder.java Mon Dec 29 03:10:15 2008
@@ -1,10 +1,8 @@
 package org.apache.james.imap.jpa.om.map;
 
-import java.util.Date;
-
+import org.apache.james.imap.jpa.om.Init;
 import org.apache.torque.Torque;
 import org.apache.torque.TorqueException;
-import org.apache.torque.map.ColumnMap;
 import org.apache.torque.map.DatabaseMap;
 import org.apache.torque.map.MapBuilder;
 import org.apache.torque.map.TableMap;
@@ -60,73 +58,7 @@
 
         dbMap.addTable("message");
         TableMap tMap = dbMap.getTable("message");
-        tMap.setJavaName("MessageRow");
-        tMap
-                .setOMClass(org.apache.james.imap.jpa.om.MessageRow.class);
-        tMap
-                .setPeerClass(org.apache.james.imap.jpa.om.MessageRowPeer.class);
-        tMap.setDescription("");
-        tMap.setPrimaryKeyMethod("none");
-
-        ColumnMap cMap = null;
-
-        // ------------- Column: mailbox_id --------------------
-        cMap = new ColumnMap("mailbox_id", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("MailboxId");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("Mailbox Id");
-        cMap.setInheritance("false");
-        cMap.setForeignKey("mailbox", "mailbox_id");
-        cMap.setPosition(1);
-        tMap.addColumn(cMap);
-        // ------------- Column: uid --------------------
-        cMap = new ColumnMap("uid", tMap);
-        cMap.setType(new Long(0));
-        cMap.setTorqueType("BIGINT");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(true);
-        cMap.setNotNull(true);
-        cMap.setJavaName("Uid");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("the last used uid (default 0)");
-        cMap.setInheritance("false");
-        cMap.setPosition(2);
-        tMap.addColumn(cMap);
-        // ------------- Column: internal_date --------------------
-        cMap = new ColumnMap("internal_date", tMap);
-        cMap.setType(new Date());
-        cMap.setTorqueType("DATE");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(false);
-        cMap.setJavaName("InternalDate");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("internal date");
-        cMap.setInheritance("false");
-        cMap.setPosition(3);
-        tMap.addColumn(cMap);
-        // ------------- Column: size --------------------
-        cMap = new ColumnMap("size", tMap);
-        cMap.setType(new Integer(0));
-        cMap.setTorqueType("INTEGER");
-        cMap.setUsePrimitive(true);
-        cMap.setPrimaryKey(false);
-        cMap.setNotNull(false);
-        cMap.setJavaName("Size");
-        cMap.setAutoIncrement(false);
-        cMap.setProtected(false);
-        cMap.setDescription("message size");
-        cMap.setInheritance("false");
-        cMap.setPosition(4);
-        tMap.addColumn(cMap);
-        tMap.setUseInheritance(false);
+        Init.populateMessageRow(tMap);
     }
+
 }

Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/MessageRowUtilsTest.java Mon Dec 29 03:10:15 2008
@@ -19,10 +19,10 @@
 
 package org.apache.james.imap.jpa;
 
-import org.apache.james.imap.jpa.om.MessageRow;
-
 import junit.framework.TestCase;
 
+import org.apache.james.imap.jpa.om.MessageRow;
+
 public class MessageRowUtilsTest extends TestCase {
 
     protected void setUp() throws Exception {

Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/PartContentBuilderComplexMultipartTest.java Mon Dec 29 03:10:15 2008
@@ -24,10 +24,10 @@
 import java.nio.charset.Charset;
 import java.util.List;
 
-import org.apache.james.imap.jpa.PartContentBuilder.PartNotFoundException;
-
 import junit.framework.TestCase;
 
+import org.apache.james.imap.jpa.PartContentBuilder.PartNotFoundException;
+
 public class PartContentBuilderComplexMultipartTest extends TestCase {
 
     private static final String PREAMBLE = "This is the preamble";

Modified: james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java
URL: http://svn.apache.org/viewvc/james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java?rev=729862&r1=729861&r2=729862&view=diff
==============================================================================
--- james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java (original)
+++ james/protocols/imap/trunk/jpa/src/test/java/org/apache/james/imap/jpa/SearchUtilsTest.java Mon Dec 29 03:10:15 2008
@@ -25,6 +25,8 @@
 
 import javax.mail.Flags;
 
+import junit.framework.TestCase;
+
 import org.apache.james.api.imap.ImapConstants;
 import org.apache.james.imap.jpa.om.MessageFlags;
 import org.apache.james.imap.jpa.om.MessageHeader;
@@ -32,8 +34,6 @@
 import org.apache.james.mailboxmanager.SearchQuery;
 import org.apache.torque.TorqueException;
 
-import junit.framework.TestCase;
-
 public class SearchUtilsTest extends TestCase {
 
     private static final String RHUBARD = "Rhubard";



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