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: [email protected]
For additional commands, e-mail: [email protected]