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