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