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 er...@apache.org on 2010/12/13 16:37:06 UTC

svn commit: r1045177 - in /james/mailbox/trunk: api/src/main/java/org/apache/james/mailbox/ jcr/src/main/java/org/apache/james/mailbox/jcr/mail/ jpa/src/main/java/org/apache/james/mailbox/jpa/mail/ jpa/src/main/java/org/apache/james/mailbox/jpa/mail/mo...

Author: eric
Date: Mon Dec 13 15:37:06 2010
New Revision: 1045177

URL: http://svn.apache.org/viewvc?rev=1045177&view=rev
Log:
Add a list method on MailboxManager to obtain all the existing mailboxpath (MAILBOX-19)

Modified:
    james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
    james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
    james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
    james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
    james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
    james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java

Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java (original)
+++ james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java Mon Dec 13 15:37:06 2010
@@ -208,5 +208,14 @@ public interface MailboxManager extends 
      * @throws MailboxException
      */
     void addListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException;
-    
+ 
+    /**
+     * Return a unmodifiable {@link List} of {@link MailboxPath} objects
+     * 
+     * @param session
+     * @return pathList
+     * @throws MailboxException 
+     */
+    public List<MailboxPath> list(MailboxSession session) throws MailboxException;
+
 }

Modified: james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java (original)
+++ james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java Mon Dec 13 15:37:06 2010
@@ -213,5 +213,26 @@ public class JCRMailboxMapper extends Ab
             throw new MailboxException("Unable to retrieve children for mailbox " + mailbox, e);
         }
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    public List<Mailbox<String>> list() throws MailboxException {
+        try {
+            List<Mailbox<String>> mList = new ArrayList<Mailbox<String>>();
+            QueryManager manager = getSession().getWorkspace().getQueryManager();
+
+            String queryString = "/jcr:root/" + MAILBOXES_PATH + "//element(*,jamesMailbox:mailbox)";
+            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            NodeIterator it = result.getNodes();
+            if (it.hasNext()) {
+                mList.add(new JCRMailbox(it.nextNode(), getLogger()));
+            }
+            return mList;
+        } catch (RepositoryException e) {
+            throw new MailboxException("Unable to retrieve the list of mailboxes", e);
+        }
+    }
  
 }

Modified: james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java (original)
+++ james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java Mon Dec 13 15:37:06 2010
@@ -152,4 +152,17 @@ public class JPAMailboxMapper extends JP
         }
         return numberOfChildMailboxes != null && numberOfChildMailboxes > 0;
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    @SuppressWarnings("unchecked")
+    public List<Mailbox<Long>> list() throws MailboxException{
+        try {
+            return getEntityManager().createNamedQuery("listMailboxes").getResultList();
+        } catch (PersistenceException e) {
+            throw new MailboxException("Delete of mailboxes failed", e);
+        } 
+    }
 }

Modified: james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java (original)
+++ james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java Mon Dec 13 15:37:06 2010
@@ -46,7 +46,9 @@ import org.apache.james.mailbox.store.ma
     @NamedQuery(name="countMailboxesWithNameLikeWithUser",
                 query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE mailbox.name LIKE :nameParam and mailbox.user= :userParam and mailbox.namespace= :namespaceParam"),
     @NamedQuery(name="countMailboxesWithNameLike",
-                query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE mailbox.name LIKE :nameParam and mailbox.user is NULL and mailbox.namespace= :namespaceParam")     
+                query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE mailbox.name LIKE :nameParam and mailbox.user is NULL and mailbox.namespace= :namespaceParam"),
+    @NamedQuery(name="listMailboxes",
+                query="SELECT mailbox FROM Mailbox mailbox"),
 })
 public class JPAMailbox implements Mailbox<Long> {
     

Modified: james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java (original)
+++ james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java Mon Dec 13 15:37:06 2010
@@ -222,4 +222,9 @@ public class MaildirMailboxMapper extend
         }
     }
 
+    public List<Mailbox<Integer>> list() throws MailboxException {
+        // TODO FIX ME!!!
+        throw new UnsupportedOperationException("Implement me!");
+    }
+
 }

Modified: james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java (original)
+++ james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java Mon Dec 13 15:37:06 2010
@@ -118,5 +118,13 @@ public class InMemoryMailboxMapper exten
         }
         return false;
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    public List<Mailbox<Long>> list() throws MailboxException {
+        return new ArrayList<Mailbox<Long>>(mailboxesById.values());
+    }
     
 }



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