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 ro...@apache.org on 2016/09/05 12:43:59 UTC

[03/10] james-project git commit: JAMES-1818 Introduce MailboxManager.hasChildren and use it in MailboxUtils

JAMES-1818 Introduce MailboxManager.hasChildren and use it in MailboxUtils


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ed7268ed
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ed7268ed
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ed7268ed

Branch: refs/heads/master
Commit: ed7268ed28ce86c78497055f61e98f2d775e6809
Parents: 8ec9ab9
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Tue Aug 30 16:00:06 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Mon Sep 5 14:42:00 2016 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/james/mailbox/MailboxManager.java    | 2 ++
 .../org/apache/james/mailbox/store/StoreMailboxManager.java   | 7 +++++++
 .../james/imap/processor/base/MailboxEventAnalyserTest.java   | 5 +++++
 .../main/java/org/apache/james/jmap/utils/MailboxUtils.java   | 4 ++--
 .../james/jmap/FirstUserConnectionFilterThreadTest.java       | 5 +++++
 5 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ed7268ed/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index e2cbdac..d993c4e 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -428,4 +428,6 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
      * @throws MailboxException in case of selected mailbox does not exist
      */
     void updateAnnotations(MailboxPath mailboxPath, MailboxSession session, List<MailboxAnnotation> mailboxAnnotations) throws MailboxException;
+    
+    boolean hasChildren(MailboxPath mailboxPath, MailboxSession session) throws MailboxException;
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ed7268ed/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index e974e18..18f4727 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -771,4 +771,11 @@ public class StoreMailboxManager implements MailboxManager {
         AnnotationMapper annotationMapper = getAnnotationMapper(mailboxPath, session);
         return annotationMapper.getAnnotationsByKeysWithAllDepth(keys);
     }
+
+    @Override
+    public boolean hasChildren(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
+        MailboxMapper mapper = mailboxSessionMapperFactory.getMailboxMapper(session);
+        Mailbox mailbox = mapper.findMailboxByPath(mailboxPath);
+        return mapper.hasChildren(mailbox, session.getPathDelimiter());
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ed7268ed/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index 35d1a4e..c6d2e89 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -423,6 +423,11 @@ public class MailboxEventAnalyserTest {
             return null;
         }
 
+        @Override
+        public boolean hasChildren(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
+            return false;
+        }
+
     };
     
     private final class MyMailboxSession implements MailboxSession {

http://git-wip-us.apache.org/repos/asf/james-project/blob/ed7268ed/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/MailboxUtils.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/MailboxUtils.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/MailboxUtils.java
index 3584420..8bb4ba3 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/MailboxUtils.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/utils/MailboxUtils.java
@@ -144,8 +144,8 @@ public class MailboxUtils {
 
     public boolean hasChildren(MailboxId mailboxId, MailboxSession mailboxSession) throws MailboxException {
         return getMailboxFromId(mailboxId, mailboxSession)
-                .map(Throwing.function(mailbox -> 
-                    mailboxMapperFactory.getMailboxMapper(mailboxSession).hasChildren(mailbox, mailboxSession.getPathDelimiter())))
+                .map(mailbox -> new MailboxPath(mailbox.getNamespace(), mailbox.getUser(), mailbox.getName()))
+                .map(Throwing.function(path -> mailboxManager.hasChildren(path, mailboxSession)))
                 .orElse(false);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/ed7268ed/server/protocols/jmap/src/test/java/org/apache/james/jmap/FirstUserConnectionFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/FirstUserConnectionFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/FirstUserConnectionFilterThreadTest.java
index 7cde34c..c64cace 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/FirstUserConnectionFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/FirstUserConnectionFilterThreadTest.java
@@ -251,6 +251,11 @@ public class FirstUserConnectionFilterThreadTest {
                 Set<MailboxAnnotationKey> keys) throws MailboxException {
             return null;
         }
+
+        @Override
+        public boolean hasChildren(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
+            return false;
+        }
     }
 }
 


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