JAMES-2400 Improve integration resources for memory

Just returning the mailbox manager is not enough


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

Branch: refs/heads/master
Commit: 3bb7ee89a6af8d352bb4503d06334a459ffa4d1b
Parents: 24d1b95
Author: benwa <btell...@linagora.com>
Authored: Mon May 21 11:32:41 2018 +0700
Committer: Matthieu Baechler <matth...@apache.org>
Committed: Tue May 22 15:32:54 2018 +0200

----------------------------------------------------------------------
 .../inmemory/MemoryMailboxManagerProvider.java  |  5 +-
 .../manager/InMemoryIntegrationResources.java   | 71 +++++++++++++++++---
 .../mailbox/store/StoreMailboxManager.java      |  2 +-
 .../event/PropagateLookupRightListenerTest.java |  7 +-
 4 files changed, 71 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3bb7ee89/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
index c8eedd1..4bcadff 100644
--- 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerProvider.java
@@ -30,8 +30,9 @@ public class MemoryMailboxManagerProvider {
 
     public static MailboxManager provideMailboxManager() throws 
MailboxException {
         return new InMemoryIntegrationResources()
-            .createMailboxManager(new SimpleGroupMembershipResolver(),
-                LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
+            .createResources(new SimpleGroupMembershipResolver(),
+                LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE)
+            .getMailboxManager();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bb7ee89/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
index fe27013..3b2014a 100644
--- 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
@@ -33,6 +33,7 @@ import 
org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
 import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
 import org.apache.james.mailbox.manager.IntegrationResources;
 import org.apache.james.mailbox.manager.ManagerTestResources;
+import org.apache.james.mailbox.quota.CurrentQuotaManager;
 import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
@@ -58,12 +59,59 @@ import com.google.common.base.Throwables;
 
 public class InMemoryIntegrationResources implements 
IntegrationResources<StoreMailboxManager> {
 
+    public static class Resources {
+        private final InMemoryMailboxManager mailboxManager;
+        private final MaxQuotaManager maxQuotaManager;
+        private final QuotaManager quotaManager;
+        private final CurrentQuotaManager currentQuotaManager;
+        private final DefaultUserQuotaRootResolver quotaRootResolver;
+        private final StoreRightManager storeRightManager;
+
+        public Resources(InMemoryMailboxManager mailboxManager, 
MaxQuotaManager maxQuotaManager, QuotaManager quotaManager, CurrentQuotaManager 
currentQuotaManager, DefaultUserQuotaRootResolver quotaRootResolver, 
StoreRightManager storeRightManager) {
+            this.mailboxManager = mailboxManager;
+            this.maxQuotaManager = maxQuotaManager;
+            this.quotaManager = quotaManager;
+            this.currentQuotaManager = currentQuotaManager;
+            this.quotaRootResolver = quotaRootResolver;
+            this.storeRightManager = storeRightManager;
+        }
+
+        public InMemoryMailboxManager getMailboxManager() {
+            return mailboxManager;
+        }
+
+        public MaxQuotaManager getMaxQuotaManager() {
+            return maxQuotaManager;
+        }
+
+        public QuotaManager getQuotaManager() {
+            return quotaManager;
+        }
+
+        public DefaultUserQuotaRootResolver getQuotaRootResolver() {
+            return quotaRootResolver;
+        }
+
+        public CurrentQuotaManager getCurrentQuotaManager() {
+            return currentQuotaManager;
+        }
+
+        public StoreRightManager getStoreRightManager() {
+            return storeRightManager;
+        }
+    }
+
     private SimpleGroupMembershipResolver groupMembershipResolver;
     private DefaultUserQuotaRootResolver quotaRootResolver;
     private InMemoryCurrentQuotaManager currentQuotaManager;
 
     @Override
     public InMemoryMailboxManager createMailboxManager(GroupMembershipResolver 
groupMembershipResolver) throws MailboxException {
+        return createResources(groupMembershipResolver)
+            .mailboxManager;
+    }
+
+    public Resources createResources(GroupMembershipResolver 
groupMembershipResolver) throws MailboxException {
         return createMailboxManager(groupMembershipResolver,
             ((storeRightManager, inMemoryMailboxSessionMapperFactory) ->
                 new StoreMailboxAnnotationManager(
@@ -71,8 +119,8 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
                     storeRightManager)));
     }
 
-    public InMemoryMailboxManager createMailboxManager(GroupMembershipResolver 
groupMembershipResolver,
-                                                    int limitAnnotationCount, 
int limitAnnotationSize) throws MailboxException {
+    public Resources createResources(GroupMembershipResolver 
groupMembershipResolver,
+                                     int limitAnnotationCount, int 
limitAnnotationSize) throws MailboxException {
         return createMailboxManager(groupMembershipResolver,
             ((storeRightManager, inMemoryMailboxSessionMapperFactory) ->
              new StoreMailboxAnnotationManager(
@@ -82,7 +130,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
                  limitAnnotationSize)));
     }
 
-    private InMemoryMailboxManager 
createMailboxManager(GroupMembershipResolver groupMembershipResolver,
+    private Resources createMailboxManager(GroupMembershipResolver 
groupMembershipResolver,
                                                     
BiFunction<StoreRightManager, InMemoryMailboxSessionMapperFactory, 
StoreMailboxAnnotationManager> annotationManagerBiFunction) throws 
MailboxException {
         FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
         fakeAuthenticator.addUser(ManagerTestResources.USER, 
ManagerTestResources.USER_PASS);
@@ -107,12 +155,19 @@ public class InMemoryIntegrationResources implements 
IntegrationResources<StoreM
             annotationManager,
             storeRightManager);
         manager.init();
+        MaxQuotaManager maxQuotaManager = createMaxQuotaManager();
         try {
-            createQuotaManager(createMaxQuotaManager(), manager);
-        } catch (Exception e) {
-            throw Throwables.propagate(e);
-        }
-        return manager;
+            QuotaManager quotaManager = createQuotaManager(maxQuotaManager, 
manager);
+        return new Resources(
+            manager,
+            maxQuotaManager,
+            quotaManager,
+            currentQuotaManager,
+            quotaRootResolver,
+            storeRightManager);
+    } catch (Exception e) {
+        throw Throwables.propagate(e);
+    }
     }
 
     public StoreMailboxManager createMailboxManager(GroupMembershipResolver 
groupMembershipResolver,

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bb7ee89/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 e49a13a..a8125fd 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
@@ -301,7 +301,7 @@ public class StoreMailboxManager implements MailboxManager {
         return locker;
     }
 
-    public StoreRightManager getStoreRightManager() {
+    protected StoreRightManager getStoreRightManager() {
         return storeRightManager;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/3bb7ee89/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
index 4cf96ad..d89f1bc 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/event/PropagateLookupRightListenerTest.java
@@ -74,9 +74,10 @@ public class PropagateLookupRightListenerTest {
     @Before
     public void setup() throws Exception {
         GroupMembershipResolver groupMembershipResolver = new 
SimpleGroupMembershipResolver();
-        storeMailboxManager = new InMemoryIntegrationResources()
-            .createMailboxManager(groupMembershipResolver);
-        storeRightManager = storeMailboxManager.getStoreRightManager();
+        InMemoryIntegrationResources.Resources resources = new 
InMemoryIntegrationResources()
+            .createResources(groupMembershipResolver);
+        storeMailboxManager = resources.getMailboxManager();
+        storeRightManager = resources.getStoreRightManager();
         mailboxMapper = storeMailboxManager.getMapperFactory();
 
         testee = new PropagateLookupRightListener(storeRightManager);


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

Reply via email to