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/03/22 18:52:56 UTC

svn commit: r926222 [1/2] - in /james/imap/trunk: jcr/src/main/java/org/apache/james/imap/jcr/ jcr/src/main/java/org/apache/james/imap/jcr/mail/ jcr/src/main/java/org/apache/james/imap/jcr/mail/model/ jpa/src/main/java/org/apache/james/imap/jpa/ jpa/sr...

Author: norman
Date: Mon Mar 22 17:52:55 2010
New Revision: 926222

URL: http://svn.apache.org/viewvc?rev=926222&view=rev
Log:
Use generics to set the type of ids. In the old api it was limited to use long which is not always a good think. For example in JCR the id (uuid) is a String (IMAP-123)

Modified:
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRGlobalUserMailboxManager.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java
    james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java
    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/JPAMailboxManager.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailbox.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
    james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailbox.java
    james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
    james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
    james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/SimpleMailboxMembership.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMembershipComparator.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MessageSearches.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultIterator.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultUtils.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/StoreMailboxManager.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractMailboxMembership.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/Mailbox.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/MailboxMembership.java
    james/imap/trunk/store/src/test/java/org/apache/james/imap/store/SimpleMailboxMembership.java

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRGlobalUserMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRGlobalUserMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRGlobalUserMailboxManager.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRGlobalUserMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -65,7 +65,7 @@ public class JCRGlobalUserMailboxManager
     
     public void deleteEverything() throws MailboxException {
         Session session = getSession(null);
-        final MailboxMapper mapper = new JCRMailboxMapper(session, getScaling(), getLog());
+        final MailboxMapper<String> mapper = new JCRMailboxMapper(session, getScaling(), getLog());
         mapper.execute(new TransactionalMapper.Transaction() {
 
             public void run() throws MailboxException {
@@ -78,7 +78,7 @@ public class JCRGlobalUserMailboxManager
     }
     
     @Override
-    protected StoreMailbox createMailbox(Mailbox mailboxRow, MailboxSession session) {
+    protected StoreMailbox<String> createMailbox(Mailbox<String> mailboxRow, MailboxSession session) {
         JCRMailbox mailbox = new JCRGlobalMailbox((org.apache.james.imap.jcr.mail.model.JCRMailbox) mailboxRow, session, getRepository(), getWorkspace(), username, password, getScaling(), getLog());
         return mailbox;
     }

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailbox.java Mon Mar 22 17:52:55 2010
@@ -51,12 +51,11 @@ import org.apache.james.imap.store.mail.
  * JCR implementation of a {@link StoreMailbox}
  *
  */
-public class JCRMailbox extends StoreMailbox{
+public class JCRMailbox extends StoreMailbox<String>{
 
     private final Repository repository;
     private final String workspace;
     private final Log log;
-    private final String uuid;
     private final int scaling;
     
     public JCRMailbox(final org.apache.james.imap.jcr.mail.model.JCRMailbox mailbox, final MailboxSession session, final Repository repository, final String workspace, final int scaling, final Log log) {
@@ -64,7 +63,6 @@ public class JCRMailbox extends StoreMai
         this.repository = repository;
         this.workspace = workspace;
         this.log = log;
-        this.uuid = mailbox.getUUID();
         this.scaling = scaling;
         
     }
@@ -78,24 +76,11 @@ public class JCRMailbox extends StoreMai
         return scaling;
     }
     
-    @Override
-    public long getMailboxId() {
-        throw new UnsupportedOperationException("Please use getMailboxUUID for this implementation");
-    }
 
-    /**
-     * Return the UUID of this Mailbox
-     * 
-     * @return uuid
-     */
-    public String getMailboxUUID() {
-        return uuid;
-    }
-    
     
     @Override
-    protected MailboxMembership copyMessage(MailboxMembership originalMessage, long uid) {
-        MailboxMembership newRow = new JCRMailboxMembership(getMailboxUUID(), uid, (JCRMailboxMembership) originalMessage, log);
+    protected MailboxMembership<String> copyMessage(MailboxMembership<String> originalMessage, long uid) {
+        MailboxMembership<String> newRow = new JCRMailboxMembership(getMailboxId(), uid, (JCRMailboxMembership) originalMessage, log);
         return newRow;
     }
 
@@ -105,23 +90,23 @@ public class JCRMailbox extends StoreMai
     }
 
     @Override
-    protected MailboxMembership createMessage(Date internalDate, long uid, int size, int bodyStartOctet, byte[] document, Flags flags, List<Header> headers, PropertyBuilder propertyBuilder) {
+    protected MailboxMembership<String> createMessage(Date internalDate, long uid, int size, int bodyStartOctet, byte[] document, Flags flags, List<Header> headers, PropertyBuilder propertyBuilder) {
         final List<JCRHeader> jcrHeaders = new ArrayList<JCRHeader>(headers.size());
         for (Header header: headers) {
             jcrHeaders.add((JCRHeader) header);
         }
-        final MailboxMembership message = new JCRMailboxMembership(getMailboxUUID(), uid, internalDate, 
+        final MailboxMembership<String> message = new JCRMailboxMembership(getMailboxId(), uid, internalDate, 
                 size, flags, document, bodyStartOctet, jcrHeaders, propertyBuilder, log);
         return message;       
         
     }
 
     @Override
-    protected MessageMapper createMessageMapper(MailboxSession session) throws MailboxException {
+    protected MessageMapper<String> createMessageMapper(MailboxSession session) throws MailboxException {
         Session jcrSession = getSession(session);
         JCRUtils.addJCRSession(session, jcrSession);
         
-        JCRMessageMapper messageMapper = new JCRMessageMapper(jcrSession, getMailboxUUID(), getScaling(), log);
+        JCRMessageMapper messageMapper = new JCRMessageMapper(jcrSession, getMailboxId(), getScaling(), log);
         
         return messageMapper;
 
@@ -144,15 +129,15 @@ public class JCRMailbox extends StoreMai
     }
     
     @Override
-    protected Mailbox getMailboxRow() throws MailboxException {
+    protected Mailbox<String> getMailboxRow() throws MailboxException {
         final JCRMailboxMapper mapper = createMailboxMapper(getMailboxSession());
-        return mapper.findMailboxByUUID(getMailboxUUID());
+        return mapper.findMailboxById(getMailboxId());
     }
 
     @Override
-    protected Mailbox reserveNextUid() throws MailboxException {
+    protected Mailbox<String> reserveNextUid() throws MailboxException {
         final JCRMailboxMapper mapper = createMailboxMapper(getMailboxSession());
-        return mapper.consumeNextUid(getMailboxUUID());
+        return mapper.consumeNextUid(getMailboxId());
     }
 
     /**

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/JCRMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -51,7 +51,7 @@ import org.apache.james.imap.store.trans
  * 
  * 
  */
-public class JCRMailboxManager extends StoreMailboxManager implements JCRImapConstants{
+public class JCRMailboxManager extends StoreMailboxManager<String> implements JCRImapConstants{
 
     private final Repository repository;
     private final String workspace;
@@ -80,13 +80,13 @@ public class JCRMailboxManager extends S
     }
     
     @Override
-    protected StoreMailbox createMailbox(Mailbox mailboxRow, MailboxSession session) {
+    protected StoreMailbox<String> createMailbox(Mailbox<String> mailboxRow, MailboxSession session) {
         JCRMailbox mailbox = new JCRMailbox((org.apache.james.imap.jcr.mail.model.JCRMailbox) mailboxRow, session, getRepository(), getWorkspace(), getScaling(), getLog());
         return mailbox;
     }
 
     @Override
-    protected MailboxMapper createMailboxMapper(MailboxSession session) throws MailboxException {
+    protected MailboxMapper<String> createMailboxMapper(MailboxSession session) throws MailboxException {
 
         Session jcrSession = getSession(session);
 
@@ -121,7 +121,7 @@ public class JCRMailboxManager extends S
 
     @Override
     protected void doCreate(String namespaceName, MailboxSession session) throws MailboxException {
-        final Mailbox mailbox = new org.apache.james.imap.jcr.mail.model.JCRMailbox(namespaceName, randomUidValidity(), logger);
+        final Mailbox<String> mailbox = new org.apache.james.imap.jcr.mail.model.JCRMailbox(namespaceName, randomUidValidity(), logger);
         final JCRMailboxMapper mapper = (JCRMailboxMapper)createMailboxMapper(session);
         mapper.execute(new TransactionalMapper.Transaction() {
 

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMailboxMapper.java Mon Mar 22 17:52:55 2010
@@ -47,7 +47,7 @@ import org.apache.james.imap.store.mail.
  * 
  * 
  */
-public class JCRMailboxMapper extends AbstractJCRMapper implements MailboxMapper {
+public class JCRMailboxMapper extends AbstractJCRMapper implements MailboxMapper<String> {
 
     public final String PATH =  "mailboxes";
     private final Log logger;
@@ -95,9 +95,9 @@ public class JCRMailboxMapper extends Ab
      * org.apache.james.imap.store.mail.MailboxMapper#delete(org.apache.james
      * .imap.store.mail.model.Mailbox)
      */
-    public void delete(Mailbox mailbox) throws StorageException {
+    public void delete(Mailbox<String> mailbox) throws StorageException {
         try {
-        	getSession().getNodeByUUID(((JCRMailbox) mailbox).getUUID()).remove();
+        	getSession().getNodeByUUID(((JCRMailbox) mailbox).getMailboxId()).remove();
         } catch (PathNotFoundException e) {
             // mailbox does not exists..
         } catch (RepositoryException e) {
@@ -143,20 +143,16 @@ public class JCRMailboxMapper extends Ab
         }
     }
 
+
     /*
      * (non-Javadoc)
-     * 
-     * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxById(long)
+     * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxById(java.lang.Object)
      */
-    public Mailbox findMailboxById(long mailboxId) throws StorageException, MailboxNotFoundException {
-        throw new StorageException(HumanReadableText.UNSUPPORTED,null);
-    }
-
-    public Mailbox findMailboxByUUID(String uuid) throws StorageException, MailboxNotFoundException {
-    	try {
-            return new JCRMailbox(getSession().getNodeByUUID(uuid),logger);
+    public Mailbox<String> findMailboxById(String mailboxId) throws StorageException, MailboxNotFoundException {
+        try {
+            return new JCRMailbox(getSession().getNodeByUUID(mailboxId),logger);
         } catch (PathNotFoundException e) {
-            throw new MailboxNotFoundException(uuid);
+            throw new MailboxNotFoundException(mailboxId);
         } catch (RepositoryException e) {
             throw new StorageException(HumanReadableText.SEARCH_FAILED, e);
         }
@@ -169,7 +165,7 @@ public class JCRMailboxMapper extends Ab
      * org.apache.james.imap.store.mail.MailboxMapper#findMailboxByName(java
      * .lang.String)
      */
-    public Mailbox findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
+    public Mailbox<String> findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
         try {
         	QueryManager manager = getSession().getWorkspace().getQueryManager();
         	String queryString = "//" + PATH + "//element(*,imap:mailbox)[@" + JCRMailbox.NAME_PROPERTY + "='" + name + "']";
@@ -194,8 +190,8 @@ public class JCRMailboxMapper extends Ab
      * org.apache.james.imap.store.mail.MailboxMapper#findMailboxWithNameLike
      * (java.lang.String)
      */
-    public List<Mailbox> findMailboxWithNameLike(String name) throws StorageException {
-        List<Mailbox> mailboxList = new ArrayList<Mailbox>();
+    public List<Mailbox<String>> findMailboxWithNameLike(String name) throws StorageException {
+        List<Mailbox<String>> mailboxList = new ArrayList<Mailbox<String>>();
         try {       
         	QueryManager manager = getSession().getWorkspace().getQueryManager();
         	String queryString = "//" + PATH + "//element(*,imap:mailbox)[jcr:like(@" + JCRMailbox.NAME_PROPERTY + ",'%" + name + "%')]";
@@ -219,14 +215,14 @@ public class JCRMailboxMapper extends Ab
      * org.apache.james.imap.store.mail.MailboxMapper#save(org.apache.james.
      * imap.store.mail.model.Mailbox)
      */
-    public void save(Mailbox mailbox) throws StorageException {
+    public void save(Mailbox<String> mailbox) throws StorageException {
         
         try {
             JCRMailbox jcrMailbox = (JCRMailbox)mailbox;
             Node node = null;
 
             if (jcrMailbox.isPersistent()) {
-                node = getSession().getNodeByUUID(jcrMailbox.getUUID());
+                node = getSession().getNodeByUUID(jcrMailbox.getMailboxId());
             }
             if (node == null) {
                 String nodePath = JCRUtils.escapePath(PATH,JCRUtils.createScaledPath(mailbox.getName(), getScaling()));
@@ -251,9 +247,9 @@ public class JCRMailboxMapper extends Ab
      * @throws StorageException
      * @throws MailboxNotFoundException
      */
-    public Mailbox consumeNextUid(String uuid) throws StorageException, MailboxNotFoundException {
+    public Mailbox<String> consumeNextUid(String uuid) throws StorageException, MailboxNotFoundException {
 
-        final JCRMailbox mailbox = (JCRMailbox) findMailboxByUUID(uuid);
+        final JCRMailbox mailbox = (JCRMailbox) findMailboxById(uuid);
         try {
             execute(new Transaction() {
                 

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/JCRMessageMapper.java Mon Mar 22 17:52:55 2010
@@ -44,7 +44,7 @@ import org.apache.james.imap.mailbox.Sea
 import org.apache.james.imap.store.mail.MessageMapper;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 
-public class JCRMessageMapper extends AbstractJCRMapper implements MessageMapper {
+public class JCRMessageMapper extends AbstractJCRMapper implements MessageMapper<String> {
 
     private final static String PATH =  "mailboxes";
     private final Log logger;
@@ -122,12 +122,12 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#delete(org.apache.james
      * .imap.store.mail.model.MailboxMembership)
      */
-    public void delete(MailboxMembership message) throws StorageException {
+    public void delete(MailboxMembership<String> message) throws StorageException {
         JCRMailboxMembership membership = (JCRMailboxMembership) message;
         if (membership.isPersistent()) {
             try {
 
-                getSession().getNodeByUUID(membership.getUUID()).remove();
+                getSession().getNodeByUUID(membership.getId()).remove();
             } catch (RepositoryException e) {
                 e.printStackTrace();
                 throw new StorageException(HumanReadableText.DELETED_FAILED, e);
@@ -142,9 +142,9 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache
      * .james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findInMailbox(MessageRange set) throws StorageException {
+    public List<MailboxMembership<String>> findInMailbox(MessageRange set) throws StorageException {
         try {
-            final List<MailboxMembership> results;
+            final List<MailboxMembership<String>> results;
             final long from = set.getUidFrom();
             final long to = set.getUidTo();
             final Type type = set.getType();
@@ -170,8 +170,8 @@ public class JCRMessageMapper extends Ab
         }
     }
 
-    private List<MailboxMembership> findMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + ">=" + uid + "] order by @" + JCRMailboxMembership.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -184,8 +184,8 @@ public class JCRMessageMapper extends Ab
         return list;
     }
 
-    private List<MailboxMembership> findMessagesInMailboxWithUID(String uuid, long uid) throws RepositoryException  {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findMessagesInMailboxWithUID(String uuid, long uid) throws RepositoryException  {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + "=" + uid + "] order by @" + JCRMailboxMembership.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -198,8 +198,8 @@ public class JCRMessageMapper extends Ab
         return list;
     }
 
-    private List<MailboxMembership> findMessagesInMailboxBetweenUIDs(String uuid, long from, long to) throws RepositoryException {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findMessagesInMailboxBetweenUIDs(String uuid, long from, long to) throws RepositoryException {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + ">=" + from + "] AND [@" + JCRMailboxMembership.UID_PROPERTY + "<=" + to + "] order by @" + JCRMailboxMembership.UID_PROPERTY;
         
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -212,8 +212,8 @@ public class JCRMessageMapper extends Ab
         return list;
     }
     
-    private List<MailboxMembership> findMessagesInMailbox(String uuid) throws RepositoryException {        
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findMessagesInMailbox(String uuid) throws RepositoryException {        
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY +"='" + uuid +"'] order by @" + JCRMailboxMembership.UID_PROPERTY;
         getSession().refresh(true);
@@ -229,8 +229,8 @@ public class JCRMessageMapper extends Ab
 
     
     
-    private List<MailboxMembership> findDeletedMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findDeletedMessagesInMailboxAfterUID(String uuid, long uid) throws RepositoryException {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + ">=" + uid + "] AND [@" + JCRMailboxMembership.DELETED_PROPERTY+ "='true'] order by @" + JCRMailboxMembership.UID_PROPERTY;
  
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -243,8 +243,8 @@ public class JCRMessageMapper extends Ab
         return list;
     }
 
-    private List<MailboxMembership> findDeletedMessagesInMailboxWithUID(String uuid, long uid) throws RepositoryException  {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findDeletedMessagesInMailboxWithUID(String uuid, long uid) throws RepositoryException  {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + "=" + uid + "] AND [@" + JCRMailboxMembership.DELETED_PROPERTY+ "='true']  order by @" + JCRMailboxMembership.UID_PROPERTY;
         QueryManager manager = getSession().getWorkspace().getQueryManager();
         QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
@@ -257,8 +257,8 @@ public class JCRMessageMapper extends Ab
         return list;
     }
 
-    private List<MailboxMembership> findDeletedMessagesInMailboxBetweenUIDs(String uuid, long from, long to) throws RepositoryException {
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+    private List<MailboxMembership<String>> findDeletedMessagesInMailboxBetweenUIDs(String uuid, long from, long to) throws RepositoryException {
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY + "='" + uuid + "'] AND [@" + JCRMailboxMembership.UID_PROPERTY + ">=" + from + "] AND [@" + JCRMailboxMembership.UID_PROPERTY + "<=" + to + "] AND [@" + JCRMailboxMembership.DELETED_PROPERTY+ "='true'] order by @" + JCRMailboxMembership.UID_PROPERTY;
        
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -271,9 +271,9 @@ public class JCRMessageMapper extends Ab
         return list;
     }
     
-    private List<MailboxMembership> findDeletedMessagesInMailbox(String uuid) throws RepositoryException {
+    private List<MailboxMembership<String>> findDeletedMessagesInMailbox(String uuid) throws RepositoryException {
         
-        List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+        List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
         String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY +"='" + uuid +"'] AND [@" + JCRMailboxMembership.DELETED_PROPERTY+ "='true'] order by @" + JCRMailboxMembership.UID_PROPERTY;
         
         QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -294,9 +294,9 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox
      * (org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findMarkedForDeletionInMailbox(MessageRange set) throws StorageException {
+    public List<MailboxMembership<String>> findMarkedForDeletionInMailbox(MessageRange set) throws StorageException {
         try {
-            final List<MailboxMembership> results;
+            final List<MailboxMembership<String>> results;
             final long from = set.getUidFrom();
             final long to = set.getUidTo();
             final Type type = set.getType();
@@ -329,10 +329,10 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox
      * ()
      */
-    public List<MailboxMembership> findRecentMessagesInMailbox() throws StorageException {
+    public List<MailboxMembership<String>> findRecentMessagesInMailbox() throws StorageException {
         
         try {
-            List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+            List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
             String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY +"='" + uuid +"'] AND [@" + JCRMailboxMembership.RECENT_PROPERTY +"='true'] order by @" + JCRMailboxMembership.UID_PROPERTY;
             
             QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -354,9 +354,9 @@ public class JCRMessageMapper extends Ab
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailbox()
      */
-    public List<MailboxMembership> findUnseenMessagesInMailbox() throws StorageException {
+    public List<MailboxMembership<String>> findUnseenMessagesInMailbox() throws StorageException {
         try {
-            List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+            List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
             String queryString = "//" + PATH + "//element(*,imap:mailboxMembership)[@" + JCRMailboxMembership.MAILBOX_UUID_PROPERTY +"='" + uuid +"'] AND [@" + JCRMailboxMembership.SEEN_PROPERTY +"='false'] order by @" + JCRMailboxMembership.UID_PROPERTY;
           
             QueryManager manager = getSession().getWorkspace().getQueryManager();
@@ -380,14 +380,14 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#save(org.apache.james.
      * imap.store.mail.model.MailboxMembership)
      */
-    public void save(MailboxMembership message) throws StorageException {
+    public void save(MailboxMembership<String> message) throws StorageException {
         JCRMailboxMembership membership = (JCRMailboxMembership) message;
         try {
             //JCRUtils.createNodeRecursive(getSession().getRootNode(), mailboxN);
             Node messageNode = null;
             
             if (membership.isPersistent()) {
-                messageNode = getSession().getNodeByUUID(membership.getUUID());
+                messageNode = getSession().getNodeByUUID(membership.getId());
             }
 
             if (messageNode == null) {
@@ -424,9 +424,9 @@ public class JCRMessageMapper extends Ab
      * org.apache.james.imap.store.mail.MessageMapper#searchMailbox(org.apache
      * .james.imap.mailbox.SearchQuery)
      */
-    public List<MailboxMembership> searchMailbox(SearchQuery query) throws StorageException {
+    public List<MailboxMembership<String>> searchMailbox(SearchQuery query) throws StorageException {
         try {
-            List<MailboxMembership> list = new ArrayList<MailboxMembership>();
+            List<MailboxMembership<String>> list = new ArrayList<MailboxMembership<String>>();
             final String xpathQuery = formulateXPath(uuid, query);
             
             QueryManager manager = getSession().getWorkspace().getQueryManager();

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailbox.java Mon Mar 22 17:52:55 2010
@@ -31,7 +31,7 @@ import org.apache.james.imap.store.mail.
 /**
  * JCR implementation of a {@link Mailbox}
  */
-public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
+public class JCRMailbox implements Mailbox<String>, JCRImapConstants, Persistent{
 
     private static final String TAB = " ";
 
@@ -180,21 +180,10 @@ public class JCRMailbox implements Mailb
         */
     }
     
-    public String getUUID() {
-        if (isPersistent()) {
-            try {
-                return node.getUUID();
-            } catch (RepositoryException e) {
-                logger.error("Unable to access property " + JcrConstants.JCR_UUID, e);
-            }
-        }
-        return null;  
-    }
-    
     @Override
     public String toString() {
         final String retValue = "Mailbox ( "
-            + "mailboxUID = " + this.getUUID() + TAB
+            + "mailboxUID = " + this.getMailboxId() + TAB
             + "name = " + this.getName() + TAB
             + "uidValidity = " + this.getUidValidity() + TAB
             + "lastUid = " + this.getLastUid() + TAB
@@ -206,7 +195,7 @@ public class JCRMailbox implements Mailb
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
-        result = PRIME * result + (int) getUUID().hashCode();
+        result = PRIME * result + (int) getMailboxId().hashCode();
         return result;
     }
     
@@ -219,7 +208,7 @@ public class JCRMailbox implements Mailb
         if (getClass() != obj.getClass())
             return false;
         final JCRMailbox other = (JCRMailbox) obj;
-        if (getUUID() != other.getUUID())
+        if (getMailboxId() != other.getMailboxId())
             return false;
         return true;
     }
@@ -228,8 +217,15 @@ public class JCRMailbox implements Mailb
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.model.Mailbox#getMailboxId()
      */
-    public long getMailboxId() {
-        return getUUID().hashCode();
+    public String getMailboxId() {
+        if (isPersistent()) {
+            try {
+                return node.getUUID();
+            } catch (RepositoryException e) {
+                logger.error("Unable to access property " + JcrConstants.JCR_UUID, e);
+            }
+        }
+        return null;      
     }
 
 }

Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/mail/model/JCRMailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -32,7 +32,6 @@ import org.apache.james.imap.jcr.JCRImap
 import org.apache.james.imap.jcr.Persistent;
 import org.apache.james.imap.store.mail.model.AbstractMailboxMembership;
 import org.apache.james.imap.store.mail.model.Document;
-import org.apache.james.imap.store.mail.model.Mailbox;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 
@@ -40,7 +39,7 @@ import org.apache.james.imap.store.mail.
  * JCR implementation of {@link MailboxMembership}
  *
  */
-public class JCRMailboxMembership extends AbstractMailboxMembership implements
+public class JCRMailboxMembership extends AbstractMailboxMembership<String> implements
 		Persistent, JCRImapConstants {
     private static final String TOSTRING_SEPARATOR = " ";
 
@@ -165,26 +164,18 @@ public class JCRMailboxMembership extend
 	 * @see
 	 * org.apache.james.imap.store.mail.model.MailboxMembership#getMailboxId()
 	 */
-	public long getMailboxId() {
-		throw new UnsupportedOperationException("Not Supported. Use UUID");
-	}
+	public String getMailboxId() {
+	    if (isPersistent()) {
+            try {
+                return node.getProperty(MAILBOX_UUID_PROPERTY).getString();
+            } catch (RepositoryException e) {
+                logger.error("Unable to access property "
+                        + MAILBOX_UUID_PROPERTY, e);
+            }
+        }
+        return mailboxUUID;
+    }
 
-	/**
-	 * Return the MailboxUUID for the mapped {@link Mailbox}
-	 * 
-	 * @return mailbox
-	 */
-	public String getMailboxUUID() {
-		if (isPersistent()) {
-			try {
-				return node.getProperty(MAILBOX_UUID_PROPERTY).getString();
-			} catch (RepositoryException e) {
-				logger.error("Unable to access property "
-						+ MAILBOX_UUID_PROPERTY, e);
-			}
-		}
-		return mailboxUUID;
-	}
 
 	/*
 	 * (non-Javadoc)
@@ -391,23 +382,6 @@ public class JCRMailboxMembership extend
 		}
 	}
 
-	/**
-	 * Return the UUID for this instance
-	 * 
-	 * @return uuid
-	 */
-	public String getUUID() {
-		if (isPersistent()) {
-			try {
-				return node.getUUID();
-			} catch (RepositoryException e) {
-				logger.error("Unable to access property "
-						+ JcrConstants.JCR_UUID, e);
-			}
-		}
-		return null;
-	}
-
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -432,7 +406,7 @@ public class JCRMailboxMembership extend
 	 * @see org.apache.james.imap.jcr.Persistent#merge(javax.jcr.Node)
 	 */
 	public void merge(Node node) throws RepositoryException {
-		node.setProperty(MAILBOX_UUID_PROPERTY, getMailboxUUID());
+		node.setProperty(MAILBOX_UUID_PROPERTY, getMailboxId());
 		node.setProperty(UID_PROPERTY, getUid());
 		node.setProperty(SIZE_PROPERTY, getSize());
 		node.setProperty(ANSWERED_PROPERTY, isAnswered());
@@ -477,14 +451,23 @@ public class JCRMailboxMembership extend
 		uid = 0;
 		*/
 	}
-	
+
+    public String getId() {
+        if (isPersistent()) {
+            try {
+                return node.getUUID();
+            } catch (RepositoryException e) {
+                logger.error("Unable to access property " + JcrConstants.JCR_UUID, e);
+            }
+        }
+        return null;      
+    }
 
     @Override
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
-        result = PRIME * result + getUUID().hashCode();
-        result = PRIME * result + getMailboxUUID().hashCode();
+        result = PRIME * result + getMailboxId().hashCode();
         return result;
     }
 
@@ -497,9 +480,9 @@ public class JCRMailboxMembership extend
         if (getClass() != obj.getClass())
             return false;
         final JCRMailboxMembership other = (JCRMailboxMembership) obj;
-        if (getMailboxUUID() != other.getMailboxUUID())
+        if (getMailboxId() != other.getMailboxId())
             return false;
-        if (getUUID() != other.getUUID())
+        if (getId() != other.getId())
             return false;
         return true;
     }
@@ -507,8 +490,8 @@ public class JCRMailboxMembership extend
     public String toString() {
         final String retValue = 
             "mailbox("
-            + "mailboxUUID = " + this.getMailboxUUID() + TOSTRING_SEPARATOR
-            + "uuid = " + this.getUUID() + TOSTRING_SEPARATOR
+            + "mailboxUUID = " + this.getMailboxId() + TOSTRING_SEPARATOR
+            + "uuid = " + this.getId() + TOSTRING_SEPARATOR
             + "internalDate = " + this.getInternalDate() + TOSTRING_SEPARATOR
             + "size = " + this.getSize() + TOSTRING_SEPARATOR
             + "answered = " + this.isAnswered() + TOSTRING_SEPARATOR

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=926222&r1=926221&r2=926222&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 Mon Mar 22 17:52:55 2010
@@ -45,11 +45,11 @@ import org.apache.james.imap.store.mail.
  * 
  *
  */
-public abstract class JPAMailbox extends StoreMailbox {
+public abstract class JPAMailbox extends StoreMailbox<Long> {
 
     protected final EntityManagerFactory entityManagerFactory;
 
-    public JPAMailbox(final Mailbox mailbox, MailboxSession session, final EntityManagerFactory entityManagerfactory) {
+    public JPAMailbox(final Mailbox<Long> mailbox, MailboxSession session, final EntityManagerFactory entityManagerfactory) {
         super(mailbox, session);
         this.entityManagerFactory = entityManagerfactory;
     }    
@@ -62,14 +62,14 @@ public abstract class JPAMailbox extends
     protected abstract JPAMailboxMapper createMailboxMapper(MailboxSession session);
 
     @Override
-    protected Mailbox getMailboxRow() throws MailboxException {
-        final MailboxMapper mapper = createMailboxMapper(getMailboxSession());
+    protected Mailbox<Long> getMailboxRow() throws MailboxException {
+        final MailboxMapper<Long> mapper = createMailboxMapper(getMailboxSession());
         return mapper.findMailboxById(mailboxId);
     }
 
     
     @Override
-    protected MessageMapper createMessageMapper(MailboxSession session) {
+    protected MessageMapper<Long> createMessageMapper(MailboxSession session) {
         EntityManager manager = entityManagerFactory.createEntityManager();
         
         JPAUtils.addEntityManager(session, manager);
@@ -80,20 +80,20 @@ public abstract class JPAMailbox extends
     }
     
     @Override
-    protected MailboxMembership createMessage(Date internalDate, final long uid, final int size, int bodyStartOctet, final byte[] document, 
+    protected MailboxMembership<Long> createMessage(Date internalDate, final long uid, final int size, int bodyStartOctet, final byte[] document, 
             final Flags flags, final List<Header> headers, PropertyBuilder propertyBuilder) {
         final List<JPAHeader> jpaHeaders = new ArrayList<JPAHeader>(headers.size());
         for (Header header: headers) {
             jpaHeaders.add((JPAHeader) header);
         }
-        final MailboxMembership message = new JPAMailboxMembership(mailboxId, uid, internalDate, 
+        final MailboxMembership<Long> message = new JPAMailboxMembership(mailboxId, uid, internalDate, 
                 size, flags, document, bodyStartOctet, jpaHeaders, propertyBuilder);
         return message;
     }
     
     @Override
-    protected MailboxMembership copyMessage(MailboxMembership originalMessage, long uid) {
-        MailboxMembership newRow = new JPAMailboxMembership(getMailboxId(), uid, (JPAMailboxMembership) originalMessage);
+    protected MailboxMembership<Long> copyMessage(MailboxMembership<Long> originalMessage, long uid) {
+        MailboxMembership<Long> newRow = new JPAMailboxMembership(getMailboxId(), uid, (JPAMailboxMembership) originalMessage);
         return newRow;
     }
     
@@ -104,9 +104,9 @@ public abstract class JPAMailbox extends
     }
 
     @Override
-    protected Mailbox reserveNextUid() throws MailboxException {
+    protected Mailbox<Long> reserveNextUid() throws MailboxException {
         final JPAMailboxMapper mapper = createMailboxMapper(getMailboxSession());
-        final Mailbox mailbox = mapper.consumeNextUid(mailboxId);
+        final Mailbox<Long> mailbox = mapper.consumeNextUid(mailboxId);
         return mailbox;
     } 
 }

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -38,7 +38,7 @@ import org.apache.james.imap.store.trans
  * 
  *
  */
-public abstract class JPAMailboxManager extends StoreMailboxManager {
+public abstract class JPAMailboxManager extends StoreMailboxManager<Long> {
 
     protected final EntityManagerFactory entityManagerFactory;
 
@@ -51,8 +51,8 @@ public abstract class JPAMailboxManager 
     
     @Override
     protected void doCreate(String namespaceName, MailboxSession session) throws MailboxException {
-        final Mailbox mailbox = new org.apache.james.imap.jpa.mail.model.JPAMailbox(namespaceName, randomUidValidity());
-        final MailboxMapper mapper = createMailboxMapper(session);
+        final Mailbox<Long> mailbox = new org.apache.james.imap.jpa.mail.model.JPAMailbox(namespaceName, randomUidValidity());
+        final MailboxMapper<Long> mapper = createMailboxMapper(session);
         mapper.execute(new TransactionalMapper.Transaction(){
 
             public void run() throws MailboxException {
@@ -69,7 +69,7 @@ public abstract class JPAMailboxManager 
      */
 
     public void deleteEverything() throws MailboxException {
-        final MailboxMapper mapper = createMailboxMapper(null);
+        final MailboxMapper<Long> mapper = createMailboxMapper(null);
         mapper.execute(new TransactionalMapper.Transaction() {
 
             public void run() throws MailboxException {

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMailboxMapper.java Mon Mar 22 17:52:55 2010
@@ -36,7 +36,7 @@ import org.apache.james.imap.store.mail.
 /**
  * Data access management for mailbox.
  */
-public abstract class JPAMailboxMapper extends JPATransactionalMapper implements MailboxMapper {
+public abstract class JPAMailboxMapper extends JPATransactionalMapper implements MailboxMapper<Long> {
 
     private static final char SQL_WILDCARD_CHAR = '%';
     
@@ -59,7 +59,7 @@ public abstract class JPAMailboxMapper e
     /**
      * @see org.apache.james.imap.store.mail.MailboxMapper#save(Mailbox)
      */
-    public void save(Mailbox mailbox) throws StorageException {
+    public void save(Mailbox<Long> mailbox) throws StorageException {
         try {
             entityManager.persist(mailbox);
         } catch (PersistenceException e) {
@@ -70,7 +70,7 @@ public abstract class JPAMailboxMapper e
     /**
      * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxByName(java.lang.String)
      */
-    public Mailbox findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
+    public Mailbox<Long> findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
         try {
             return (JPAMailbox) entityManager.createNamedQuery("findMailboxByName").setParameter("nameParam", name).getSingleResult();
         } catch (NoResultException e) {
@@ -84,7 +84,7 @@ public abstract class JPAMailboxMapper e
     /**
      * @see org.apache.james.imap.store.mail.MailboxMapper#delete(Mailbox)
      */
-    public void delete(Mailbox mailbox) throws StorageException {
+    public void delete(Mailbox<Long> mailbox) throws StorageException {
         try {  
             entityManager.remove(mailbox);
         } catch (PersistenceException e) {
@@ -96,7 +96,7 @@ public abstract class JPAMailboxMapper e
      * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxWithNameLike(java.lang.String)
      */
     @SuppressWarnings("unchecked")
-    public List<Mailbox> findMailboxWithNameLike(String name) throws StorageException {
+    public List<Mailbox<Long>> findMailboxWithNameLike(String name) throws StorageException {
         try {
             return entityManager.createNamedQuery("findMailboxWithNameLike").setParameter("nameParam", SQL_WILDCARD_CHAR + name + SQL_WILDCARD_CHAR).getResultList();
         } catch (PersistenceException e) {
@@ -129,7 +129,7 @@ public abstract class JPAMailboxMapper e
     /**
      * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxById(long)
      */
-    public Mailbox findMailboxById(long mailboxId) throws StorageException, MailboxNotFoundException  {
+    public Mailbox<Long> findMailboxById(Long mailboxId) throws StorageException, MailboxNotFoundException  {
         try {
             return (JPAMailbox) entityManager.createNamedQuery("findMailboxById").setParameter("idParam", mailboxId).getSingleResult();
         } catch (NoResultException e) {
@@ -139,10 +139,12 @@ public abstract class JPAMailboxMapper e
         } 
     }
 
-    /**
-     * @see org.apache.james.imap.store.mail.MailboxMapper#consumeNextUid(long)
+
+
+    /*
+     * 
      */
-    public Mailbox consumeNextUid(long mailboxId) throws StorageException, MailboxNotFoundException {
+    public Mailbox<Long> consumeNextUid(Long mailboxId) throws StorageException, MailboxNotFoundException {
         try {
             return doConsumeNextUid(mailboxId);
         } catch (NoResultException e) {

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=926222&r1=926221&r2=926222&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 Mon Mar 22 17:52:55 2010
@@ -34,7 +34,7 @@ import org.apache.james.imap.mailbox.Sea
 import org.apache.james.imap.store.mail.MessageMapper;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 
-public class JPAMessageMapper extends JPATransactionalMapper implements MessageMapper {
+public class JPAMessageMapper extends JPATransactionalMapper implements MessageMapper<Long> {
 
     private final long mailboxId;
     
@@ -46,9 +46,9 @@ public class JPAMessageMapper extends JP
     /**
      * @see org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findInMailbox(MessageRange set) throws StorageException {
+    public List<MailboxMembership<Long>> findInMailbox(MessageRange set) throws StorageException {
         try {
-            final List<MailboxMembership> results;
+            final List<MailboxMembership<Long>> results;
             final long from = set.getUidFrom();
             final long to = set.getUidTo();
             final Type type = set.getType();
@@ -74,21 +74,21 @@ public class JPAMessageMapper extends JP
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findMessagesInMailboxAfterUID(long mailboxId, long uid) {
+    private List<MailboxMembership<Long>> findMessagesInMailboxAfterUID(long mailboxId, long uid) {
         return entityManager.createNamedQuery("findMessagesInMailboxAfterUID")
         .setParameter("idParam", mailboxId)
         .setParameter("uidParam", uid).getResultList();
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findMessagesInMailboxWithUID(long mailboxId, long uid) {
+    private List<MailboxMembership<Long>> findMessagesInMailboxWithUID(long mailboxId, long uid) {
         return entityManager.createNamedQuery("findMessagesInMailboxWithUID")
         .setParameter("idParam", mailboxId)
         .setParameter("uidParam", uid).getResultList();
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findMessagesInMailboxBetweenUIDs(long mailboxId, long from, long to) {
+    private List<MailboxMembership<Long>> findMessagesInMailboxBetweenUIDs(long mailboxId, long from, long to) {
         return entityManager.createNamedQuery("findMessagesInMailboxBetweenUIDs")
         .setParameter("idParam", mailboxId)
         .setParameter("fromParam", from)
@@ -96,16 +96,16 @@ public class JPAMessageMapper extends JP
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findMessagesInMailbox(long mailboxId) {
+    private List<MailboxMembership<Long>> findMessagesInMailbox(long mailboxId) {
         return entityManager.createNamedQuery("findMessagesInMailbox").setParameter("idParam", mailboxId).getResultList();
     }
 
     /**
      * @see org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findMarkedForDeletionInMailbox(final MessageRange set) throws StorageException {
+    public List<MailboxMembership<Long>> findMarkedForDeletionInMailbox(final MessageRange set) throws StorageException {
         try {
-            final List<MailboxMembership> results;
+            final List<MailboxMembership<Long>> results;
             final long from = set.getUidFrom();
             final long to = set.getUidTo();
             switch (set.getType()) {
@@ -130,26 +130,26 @@ public class JPAMessageMapper extends JP
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findDeletedMessagesInMailbox(long mailboxId) {
+    private List<MailboxMembership<Long>> findDeletedMessagesInMailbox(long mailboxId) {
         return entityManager.createNamedQuery("findDeletedMessagesInMailbox").setParameter("idParam", mailboxId).getResultList();
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findDeletedMessagesInMailboxAfterUID(long mailboxId, long uid) {
+    private List<MailboxMembership<Long>> findDeletedMessagesInMailboxAfterUID(long mailboxId, long uid) {
         return entityManager.createNamedQuery("findDeletedMessagesInMailboxBetweenUIDs")
         .setParameter("idParam", mailboxId)
         .setParameter("uidParam", uid).getResultList();
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findDeletedMessagesInMailboxWithUID(long mailboxId, long uid) {
+    private List<MailboxMembership<Long>> findDeletedMessagesInMailboxWithUID(long mailboxId, long uid) {
         return entityManager.createNamedQuery("findDeletedMessagesInMailboxBetweenUIDs")
         .setParameter("idParam", mailboxId)
         .setParameter("uidParam", uid).getResultList();
     }
 
     @SuppressWarnings("unchecked")
-    private List<MailboxMembership> findDeletedMessagesInMailboxBetweenUIDs(long mailboxId, long from, long to) {
+    private List<MailboxMembership<Long>> findDeletedMessagesInMailboxBetweenUIDs(long mailboxId, long from, long to) {
         return entityManager.createNamedQuery("findDeletedMessagesInMailboxBetweenUIDs")
         .setParameter("idParam", mailboxId)
         .setParameter("fromParam", from)
@@ -182,7 +182,7 @@ public class JPAMessageMapper extends JP
      * @see org.apache.james.imap.store.mail.MessageMapper#searchMailbox(org.apache.james.imap.mailbox.SearchQuery)
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> searchMailbox(SearchQuery query) throws StorageException {
+    public List<MailboxMembership<Long>> searchMailbox(SearchQuery query) throws StorageException {
         try {
             final String jql = formulateJQL(mailboxId, query);
             return entityManager.createQuery(jql).getResultList();
@@ -221,7 +221,7 @@ public class JPAMessageMapper extends JP
     /**
      * @see org.apache.james.imap.store.mail.MessageMapper#delete(MailboxMembership)
      */
-    public void delete(MailboxMembership message) throws StorageException {
+    public void delete(MailboxMembership<Long> message) throws StorageException {
         try {
             entityManager.remove(message);
         } catch (PersistenceException e) {
@@ -234,7 +234,7 @@ public class JPAMessageMapper extends JP
      * @see org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailbox()
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> findUnseenMessagesInMailbox()  throws StorageException {
+    public List<MailboxMembership<Long>> findUnseenMessagesInMailbox()  throws StorageException {
         try {
             return entityManager.createNamedQuery("findUnseenMessagesInMailboxOrderByUid").setParameter("idParam", mailboxId).getResultList();
         } catch (PersistenceException e) {
@@ -246,7 +246,7 @@ public class JPAMessageMapper extends JP
      * @see org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox()
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> findRecentMessagesInMailbox() throws StorageException {
+    public List<MailboxMembership<Long>> findRecentMessagesInMailbox() throws StorageException {
         try {
             return entityManager.createNamedQuery("findRecentMessagesInMailbox").setParameter("idParam", mailboxId).getResultList();
         } catch (PersistenceException e) {
@@ -257,7 +257,7 @@ public class JPAMessageMapper extends JP
     /**
      * @see org.apache.james.imap.store.mail.MessageMapper#save(MailboxMembership)
      */
-    public void save(MailboxMembership message) throws StorageException {
+    public void save(MailboxMembership<Long> message) throws StorageException {
         try {
             entityManager.persist(message);
         } catch (PersistenceException e) {

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailbox.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailbox.java Mon Mar 22 17:52:55 2010
@@ -42,7 +42,7 @@ import org.apache.james.imap.store.mail.
     @NamedQuery(name="countMailboxesWithNameLike",
                 query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE mailbox.name LIKE :nameParam")     
 })
-public class JPAMailbox implements Mailbox {
+public class JPAMailbox implements Mailbox<Long> {
     
     private static final String TAB = " ";
 
@@ -91,7 +91,7 @@ public class JPAMailbox implements Mailb
     /**
      * @see org.apache.james.imap.store.mail.model.Mailbox#getMailboxId()
      */
-    public long getMailboxId() {
+    public Long getMailboxId() {
         return mailboxId;
     }
 

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -65,7 +65,7 @@ import org.apache.james.imap.store.mail.
     @NamedQuery(name="countMessagesInMailbox",
             query="SELECT COUNT(membership) FROM Membership membership WHERE membership.mailboxId = :idParam")                     
 })
-public class JPAMailboxMembership extends AbstractMailboxMembership {
+public class JPAMailboxMembership extends AbstractMailboxMembership<Long> {
 
     private static final String TOSTRING_SEPARATOR = " ";
 
@@ -187,7 +187,7 @@ public class JPAMailboxMembership extend
     /**
      * @see org.apache.james.imap.store.mail.model.MailboxMembership#getMailboxId()
      */
-    public long getMailboxId() {
+    public Long getMailboxId() {
         return mailboxId;
     }
 

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailbox.java Mon Mar 22 17:52:55 2010
@@ -36,7 +36,7 @@ import org.apache.james.imap.store.mail.
 public class OpenJPAMailbox extends JPAMailbox{
 
     public final static String MAILBOX_MAPPER = "MAILBOX_MAPPER";
-    public OpenJPAMailbox(Mailbox mailbox,
+    public OpenJPAMailbox(Mailbox<Long> mailbox,
     		MailboxSession session, EntityManagerFactory entityManagerfactory) {
 		super(mailbox, session, entityManagerfactory);
 	}

Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/openjpa/OpenJPAMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -42,14 +42,13 @@ public class OpenJPAMailboxManager exten
 	}
 
 	@Override
-	protected MailboxMapper createMailboxMapper(MailboxSession session) {
+	protected MailboxMapper<Long> createMailboxMapper(MailboxSession session) {
         return new OpenJPAMailboxMapper(entityManagerFactory.createEntityManager());
 	}
 
 
-    @Override
-    protected StoreMailbox createMailbox(Mailbox mailboxRow, MailboxSession session) {
-        StoreMailbox result;
+    protected StoreMailbox<Long> createMailbox(Mailbox<Long> mailboxRow, MailboxSession session) {
+        StoreMailbox<Long> result;
         result = new OpenJPAMailbox(mailboxRow, session, entityManagerFactory);
         return result;
     }

Modified: james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailbox.java (original)
+++ james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailbox.java Mon Mar 22 17:52:55 2010
@@ -26,7 +26,7 @@ import org.apache.james.imap.store.mail.
 /**
  * Mailbox data which is stored only in memory.
  */
-public class InMemoryMailbox implements Mailbox {
+public class InMemoryMailbox implements Mailbox<Long> {
 
     private final long id;    
     private final long uidValidity;
@@ -49,7 +49,7 @@ public class InMemoryMailbox implements 
         return nextUid.get();
     }
 
-    public long getMailboxId() {
+    public Long getMailboxId() {
         return id;
     }
 

Modified: james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java (original)
+++ james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -36,7 +36,7 @@ import org.apache.james.imap.store.mail.
 import org.apache.james.imap.store.mail.model.Mailbox;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 
-public class InMemoryMailboxManager extends StoreMailboxManager implements MailboxMapper {
+public class InMemoryMailboxManager extends StoreMailboxManager<Long> implements MailboxMapper<Long> {
 
     private static final int INITIAL_SIZE = 128;
     private Map<Long, InMemoryMailbox> mailboxesById;
@@ -47,13 +47,13 @@ public class InMemoryMailboxManager exte
     }
 
     @Override
-    protected StoreMailbox createMailbox(Mailbox mailboxRow, MailboxSession session) {
+    protected StoreMailbox<Long> createMailbox(Mailbox<Long> mailboxRow, MailboxSession session) {
         final InMemoryStoreMailbox storeMailbox = new InMemoryStoreMailbox((InMemoryMailbox)mailboxRow, session);
         return storeMailbox;
     }
 
     @Override
-    protected MailboxMapper createMailboxMapper(MailboxSession session) {
+    protected MailboxMapper<Long> createMailboxMapper(MailboxSession session) {
         return this;
     }
 
@@ -82,7 +82,7 @@ public class InMemoryMailboxManager exte
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MailboxMapper#delete(org.apache.james.imap.store.mail.model.Mailbox)
      */
-    public void delete(Mailbox mailbox) throws StorageException {
+    public void delete(Mailbox<Long> mailbox) throws StorageException {
         mailboxesById.remove(mailbox.getMailboxId());
     }
 
@@ -94,11 +94,12 @@ public class InMemoryMailboxManager exte
         mailboxesById.clear();
     }
 
+
     /*
      * (non-Javadoc)
-     * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxById(long)
+     * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxById(java.lang.Object)
      */
-    public Mailbox findMailboxById(long mailboxId) throws StorageException, MailboxNotFoundException {
+    public Mailbox<Long> findMailboxById(Long mailboxId) throws StorageException, MailboxNotFoundException {
         return mailboxesById.get(mailboxesById);
     }
 
@@ -106,8 +107,8 @@ public class InMemoryMailboxManager exte
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxByName(java.lang.String)
      */
-    public Mailbox findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
-        Mailbox result = null;
+    public Mailbox<Long> findMailboxByName(String name) throws StorageException, MailboxNotFoundException {
+        Mailbox<Long> result = null;
         for (final InMemoryMailbox mailbox:mailboxesById.values()) {
             if (mailbox.getName().equals(name)) {
                 result = mailbox;
@@ -121,9 +122,9 @@ public class InMemoryMailboxManager exte
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MailboxMapper#findMailboxWithNameLike(java.lang.String)
      */
-    public List<Mailbox> findMailboxWithNameLike(String name) throws StorageException {
+    public List<Mailbox<Long>> findMailboxWithNameLike(String name) throws StorageException {
         final String regex = name.replace("%", ".*");
-        List<Mailbox> results = new ArrayList<Mailbox>();
+        List<Mailbox<Long>> results = new ArrayList<Mailbox<Long>>();
         for (final InMemoryMailbox mailbox:mailboxesById.values()) {
             if (mailbox.getName().matches(regex)) {
                 results.add(mailbox);
@@ -151,7 +152,7 @@ public class InMemoryMailboxManager exte
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MailboxMapper#save(org.apache.james.imap.store.mail.model.Mailbox)
      */
-    public void save(Mailbox mailbox) throws StorageException {
+    public void save(Mailbox<Long> mailbox) throws StorageException {
         mailboxesById.put(mailbox.getMailboxId(), (InMemoryMailbox) mailbox);
     }
 
@@ -170,7 +171,7 @@ public class InMemoryMailboxManager exte
      */
 
     public void deleteEverything() throws MailboxException {
-        final MailboxMapper mapper = createMailboxMapper(null);
+        final MailboxMapper<Long> mapper = createMailboxMapper(null);
         mapper.execute(new TransactionalMapper.Transaction() {
 
             public void run() throws MailboxException {

Modified: james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java (original)
+++ james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/InMemoryStoreMailbox.java Mon Mar 22 17:52:55 2010
@@ -42,20 +42,20 @@ import org.apache.james.imap.store.mail.
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 
-public class InMemoryStoreMailbox extends StoreMailbox implements MessageMapper {
+public class InMemoryStoreMailbox extends StoreMailbox<Long> implements MessageMapper<Long> {
     
     private static final int INITIAL_SIZE = 256;
-    private Map<Long, MailboxMembership> membershipByUid;
+    private Map<Long, MailboxMembership<Long>> membershipByUid;
     private InMemoryMailbox mailbox;
 
     public InMemoryStoreMailbox(InMemoryMailbox mailbox, MailboxSession session) {
         super(mailbox,session);
         this.mailbox = mailbox;
-        this.membershipByUid = new ConcurrentHashMap<Long, MailboxMembership>(INITIAL_SIZE);
+        this.membershipByUid = new ConcurrentHashMap<Long, MailboxMembership<Long>>(INITIAL_SIZE);
     }
 
     @Override
-    protected MailboxMembership copyMessage(MailboxMembership originalMessage, long uid) {
+    protected MailboxMembership<Long> copyMessage(MailboxMembership<Long> originalMessage, long uid) {
         return new SimpleMailboxMembership(mailboxId, uid, (SimpleMailboxMembership) originalMessage);
     }
 
@@ -65,23 +65,23 @@ public class InMemoryStoreMailbox extend
     }
 
     @Override
-    protected MailboxMembership createMessage(Date internalDate, long uid, int size, int bodyStartOctet, 
+    protected MailboxMembership<Long> createMessage(Date internalDate, long uid, int size, int bodyStartOctet, 
             byte[] document, Flags flags, List<Header> headers, PropertyBuilder propertyBuilder) {
         return new SimpleMailboxMembership(internalDate, uid, size, bodyStartOctet, document, flags, headers, propertyBuilder, mailboxId);
     }
 
     @Override
-    protected MessageMapper createMessageMapper(MailboxSession session) {
+    protected MessageMapper<Long> createMessageMapper(MailboxSession session) {
         return this;
     }
 
     @Override
-    protected Mailbox getMailboxRow() throws MailboxException {
+    protected Mailbox<Long> getMailboxRow() throws MailboxException {
         return mailbox;
     }
 
     @Override
-    protected Mailbox reserveNextUid() throws MailboxException {
+    protected Mailbox<Long> reserveNextUid() throws MailboxException {
         mailbox.consumeUid();
         return mailbox;
     }
@@ -100,7 +100,7 @@ public class InMemoryStoreMailbox extend
      */
     public long countUnseenMessagesInMailbox() throws StorageException {
         long count = 0;
-        for(MailboxMembership member:membershipByUid.values()) {
+        for(MailboxMembership<Long> member:membershipByUid.values()) {
             if (!member.isSeen()) {
                 count++;
             }
@@ -112,29 +112,29 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#delete(org.apache.james.imap.store.mail.model.MailboxMembership)
      */
-    public void delete(MailboxMembership message) throws StorageException {
+    public void delete(MailboxMembership<Long> message) throws StorageException {
         membershipByUid.remove(message.getUid());
     }
 
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> findInMailbox(MessageRange set) throws StorageException {
-        final List<MailboxMembership> results;
+    public List<MailboxMembership<Long>> findInMailbox(MessageRange set) throws StorageException {
+        final List<MailboxMembership<Long>> results;
         final MessageRange.Type type = set.getType();
         switch (type) {
             case ALL:
-                results = new ArrayList<MailboxMembership>(membershipByUid.values());
+                results = new ArrayList<MailboxMembership<Long>>(membershipByUid.values());
                 break;
             case FROM:
-                results = new ArrayList<MailboxMembership>(membershipByUid.values());
-                for (final Iterator<MailboxMembership> it=results.iterator();it.hasNext();) {
+                results = new ArrayList<MailboxMembership<Long>>(membershipByUid.values());
+                for (final Iterator<MailboxMembership<Long>> it=results.iterator();it.hasNext();) {
                    if (it.next().getUid()< set.getUidFrom()) {
                        it.remove(); 
                    }
                 }
                 break;
             case RANGE:
-                results = new ArrayList<MailboxMembership>(membershipByUid.values());
-                for (final Iterator<MailboxMembership> it=results.iterator();it.hasNext();) {
+                results = new ArrayList<MailboxMembership<Long>>(membershipByUid.values());
+                for (final Iterator<MailboxMembership<Long>> it=results.iterator();it.hasNext();) {
                    final long uid = it.next().getUid();
                 if (uid<set.getUidFrom() || uid>set.getUidTo()) {
                        it.remove(); 
@@ -142,14 +142,14 @@ public class InMemoryStoreMailbox extend
                 }
                 break;
             case ONE:
-                results  = new ArrayList<MailboxMembership>(1);
+                results  = new ArrayList<MailboxMembership<Long>>(1);
                 final MailboxMembership member = membershipByUid.get(set.getUidFrom());
                 if (member != null) {
                     results.add(member);
                 }
                 break;
             default:
-                results = Collections.EMPTY_LIST;
+                results = new ArrayList<MailboxMembership<Long>>();
                 break;
         }
         Collections.sort(results, MailboxMembershipComparator.INSTANCE);
@@ -160,9 +160,9 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findMarkedForDeletionInMailbox(MessageRange set) throws StorageException {
-        final List<MailboxMembership> results = findInMailbox(set);
-        for(final Iterator<MailboxMembership> it=results.iterator();it.hasNext();) {
+    public List<MailboxMembership<Long>> findMarkedForDeletionInMailbox(MessageRange set) throws StorageException {
+        final List<MailboxMembership<Long>> results = findInMailbox(set);
+        for(final Iterator<MailboxMembership<Long>> it=results.iterator();it.hasNext();) {
             if (!it.next().isDeleted()) {
                 it.remove();
             }
@@ -174,9 +174,9 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox()
      */
-    public List<MailboxMembership> findRecentMessagesInMailbox() throws StorageException {
-        final List<MailboxMembership> results = new ArrayList<MailboxMembership>();
-        for(MailboxMembership member:membershipByUid.values()) {
+    public List<MailboxMembership<Long>> findRecentMessagesInMailbox() throws StorageException {
+        final List<MailboxMembership<Long>> results = new ArrayList<MailboxMembership<Long>>();
+        for(MailboxMembership<Long> member:membershipByUid.values()) {
             if (member.isRecent()) {
                 results.add(member);
             }
@@ -190,9 +190,9 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailbox()
      */
-    public List<MailboxMembership> findUnseenMessagesInMailbox() throws StorageException {
-        final List<MailboxMembership> results = new ArrayList<MailboxMembership>();
-        for(MailboxMembership member:membershipByUid.values()) {
+    public List<MailboxMembership<Long>> findUnseenMessagesInMailbox() throws StorageException {
+        final List<MailboxMembership<Long>> results = new ArrayList<MailboxMembership<Long>>();
+        for(MailboxMembership<Long> member:membershipByUid.values()) {
             if (!member.isSeen()) {
                 results.add(member);
             }
@@ -205,7 +205,7 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#save(org.apache.james.imap.store.mail.model.MailboxMembership)
      */
-    public void save(MailboxMembership message) throws StorageException {
+    public void save(MailboxMembership<Long> message) throws StorageException {
         membershipByUid.put(message.getUid(), message);
     }
 
@@ -213,8 +213,8 @@ public class InMemoryStoreMailbox extend
      * (non-Javadoc)
      * @see org.apache.james.imap.store.mail.MessageMapper#searchMailbox(org.apache.james.imap.mailbox.SearchQuery)
      */
-    public List<MailboxMembership> searchMailbox(SearchQuery query) throws StorageException {
-        return new ArrayList<MailboxMembership>(membershipByUid.values());
+    public List<MailboxMembership<Long>> searchMailbox(SearchQuery query) throws StorageException {
+        return new ArrayList<MailboxMembership<Long>>(membershipByUid.values());
     }
 
 

Modified: james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/SimpleMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/SimpleMailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/SimpleMailboxMembership.java (original)
+++ james/imap/trunk/memory/src/main/java/org/apache/james/imap/inmemory/SimpleMailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -32,7 +32,7 @@ import org.apache.james.imap.store.mail.
 import org.apache.james.imap.store.mail.model.Property;
 import org.apache.james.imap.store.mail.model.PropertyBuilder;
 
-public class SimpleMailboxMembership extends AbstractMailboxMembership implements Document, Comparable<MailboxMembership> {
+public class SimpleMailboxMembership extends AbstractMailboxMembership<Long> implements Document, Comparable<MailboxMembership<Long>> {
 
     private final long uid;
     private final long mailboxId;
@@ -97,7 +97,7 @@ public class SimpleMailboxMembership ext
         return internalDate;
     }
 
-    public long getMailboxId() {
+    public Long getMailboxId() {
         return mailboxId;
     }
 
@@ -206,7 +206,7 @@ public class SimpleMailboxMembership ext
         return true;
     }
 
-    public int compareTo(MailboxMembership o) {
+    public int compareTo(MailboxMembership<Long> o) {
         final long otherUid = getUid();
         return uid < otherUid ? -1 : uid == otherUid ? 0 : 1;
     }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMembershipComparator.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMembershipComparator.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMembershipComparator.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MailboxMembershipComparator.java Mon Mar 22 17:52:55 2010
@@ -26,7 +26,7 @@ import org.apache.james.imap.store.mail.
 /**
  * UID comparator for mailbox membership.
  */
-public final class MailboxMembershipComparator implements Comparator<MailboxMembership> {
+public final class MailboxMembershipComparator implements Comparator<MailboxMembership<?>> {
     
     public static final MailboxMembershipComparator INSTANCE = new MailboxMembershipComparator();
     
@@ -36,7 +36,7 @@ public final class MailboxMembershipComp
      * (non-Javadoc)
      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
      */
-    public int compare(MailboxMembership o1, MailboxMembership o2) {
+    public int compare(MailboxMembership<?> o1, MailboxMembership<?> o2) {
         final long uid = o1.getUid();
         final long otherUid = o2.getUid();
         return uid < otherUid ? -1 : uid == otherUid ? 0 : 1;



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