This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 59a4b7e39caa04e264829fc65ce6afe9360fddae Author: tran tien duc <[email protected]> AuthorDate: Wed Feb 20 19:04:40 2019 +0700 MAILBOX-379 Plug PreDeletionHook to Memory MailboxStoreManager --- .../mailbox/inmemory/InMemoryMailboxManager.java | 3 +- .../mailbox/inmemory/InMemoryMessageManager.java | 6 ++-- .../inmemory/MemoryMailboxManagerProvider.java | 7 +++-- .../inmemory/MemoryMailboxManagerStressTest.java | 3 +- .../mailbox/inmemory/MemoryMailboxManagerTest.java | 9 +----- .../manager/InMemoryIntegrationResources.java | 32 +++++++++++++++++----- 6 files changed, 39 insertions(+), 21 deletions(-) diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java index bd25f42..66c261e 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java @@ -87,6 +87,7 @@ public class InMemoryMailboxManager extends StoreMailboxManager { getMessageParser(), getMessageIdFactory(), configuration.getBatchSizes(), - getStoreRightManager()); + getStoreRightManager(), + getPreDeletionHooks()); } } diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java index 645d0fb..9dcb5ca 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMessageManager.java @@ -1,6 +1,7 @@ package org.apache.james.mailbox.inmemory; import java.util.List; +import java.util.Set; import javax.mail.Flags; @@ -38,10 +39,11 @@ public class InMemoryMessageManager extends StoreMessageManager { MessageParser messageParser, MessageId.Factory messageIdFactory, BatchSizes batchSizes, - StoreRightManager storeRightManager) { + StoreRightManager storeRightManager, + Set<PreDeletionHook> preDeletionHooks) { super(InMemoryMailboxManager.MESSAGE_CAPABILITIES, mapperFactory, index, eventBus, locker, mailbox, quotaManager, quotaRootResolver, - messageParser, messageIdFactory, batchSizes, storeRightManager, PreDeletionHook.NO_PRE_DELETION_HOOK); + messageParser, messageIdFactory, batchSizes, storeRightManager, preDeletionHooks); this.mapperFactory = (InMemoryMailboxSessionMapperFactory) mapperFactory; } 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 7504574..ba24881 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 @@ -19,17 +19,20 @@ package org.apache.james.mailbox.inmemory; +import java.util.Set; + import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver; +import org.apache.james.mailbox.extension.PreDeletionHook; import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources; public class MemoryMailboxManagerProvider { private static final int LIMIT_ANNOTATIONS = 3; private static final int LIMIT_ANNOTATION_SIZE = 30; - public static InMemoryMailboxManager provideMailboxManager() { + public static InMemoryMailboxManager provideMailboxManager(Set<PreDeletionHook> preDeletionHooks) { return new InMemoryIntegrationResources() .createResources(new SimpleGroupMembershipResolver(), - LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE) + LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE, preDeletionHooks) .getMailboxManager(); } diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java index f264ef3..a9e572e 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java @@ -21,6 +21,7 @@ package org.apache.james.mailbox.inmemory; import org.apache.james.mailbox.MailboxManagerStressTest; import org.apache.james.mailbox.events.EventBus; +import org.apache.james.mailbox.extension.PreDeletionHook; import org.junit.Before; public class MemoryMailboxManagerStressTest extends MailboxManagerStressTest<InMemoryMailboxManager> { @@ -33,7 +34,7 @@ public class MemoryMailboxManagerStressTest extends MailboxManagerStressTest<InM @Override protected InMemoryMailboxManager provideManager() { - return MemoryMailboxManagerProvider.provideMailboxManager(); + return MemoryMailboxManagerProvider.provideMailboxManager(PreDeletionHook.NO_PRE_DELETION_HOOK); } @Override diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerTest.java index 889f35d..a878764 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerTest.java @@ -21,19 +21,12 @@ package org.apache.james.mailbox.inmemory; import org.apache.james.mailbox.MailboxManagerTest; import org.apache.james.mailbox.events.EventBus; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Nested; public class MemoryMailboxManagerTest extends MailboxManagerTest<InMemoryMailboxManager> { - @Disabled("will enable at later commits") - @Nested - class HookTests { - } - @Override protected InMemoryMailboxManager provideMailboxManager() { - return MemoryMailboxManagerProvider.provideMailboxManager(); + return MemoryMailboxManagerProvider.provideMailboxManager(preDeletionHooks()); } @Override 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 8ae5009..7006099 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 @@ -19,6 +19,8 @@ package org.apache.james.mailbox.inmemory.manager; +import java.util.Set; + import org.apache.james.mailbox.MessageIdManager; import org.apache.james.mailbox.acl.GroupMembershipResolver; import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver; @@ -118,11 +120,16 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM } public Resources createResources(GroupMembershipResolver groupMembershipResolver, int limitAnnotationCount, int limitAnnotationSize) { + return createResources(groupMembershipResolver, limitAnnotationCount, limitAnnotationSize, PreDeletionHook.NO_PRE_DELETION_HOOK); + } + + public Resources createResources(GroupMembershipResolver groupMembershipResolver, int limitAnnotationCount, int limitAnnotationSize, + Set<PreDeletionHook> preDeletionHooks) { FakeAuthenticator fakeAuthenticator = new FakeAuthenticator(); fakeAuthenticator.addUser(ManagerTestResources.USER, ManagerTestResources.USER_PASS); fakeAuthenticator.addUser(ManagerTestResources.OTHER_USER, ManagerTestResources.OTHER_USER_PASS); - return createResources(groupMembershipResolver, fakeAuthenticator, FakeAuthorizator.defaultReject(), limitAnnotationCount, limitAnnotationSize); + return createResources(groupMembershipResolver, fakeAuthenticator, FakeAuthorizator.defaultReject(), limitAnnotationCount, limitAnnotationSize, preDeletionHooks); } public StoreMailboxManager createMailboxManager(GroupMembershipResolver groupMembershipResolver, Authenticator authenticator, Authorizator authorizator) { @@ -138,15 +145,26 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM int limitAnnotationCount, int limitAnnotationSize) { return createResources(new InVMEventBus(new InVmEventDelivery(new NoopMetricFactory())), - groupMembershipResolver, authenticator, authorizator, limitAnnotationCount, limitAnnotationSize); + groupMembershipResolver, authenticator, authorizator, limitAnnotationCount, limitAnnotationSize, PreDeletionHook.NO_PRE_DELETION_HOOK); + } + + private Resources createResources(GroupMembershipResolver groupMembershipResolver, + Authenticator authenticator, Authorizator authorizator, + int limitAnnotationCount, int limitAnnotationSize, Set<PreDeletionHook> preDeletionHooks) { + + return createResources(new InVMEventBus(new InVmEventDelivery(new NoopMetricFactory())), + groupMembershipResolver, authenticator, authorizator, limitAnnotationCount, limitAnnotationSize, preDeletionHooks); } public Resources createResources(EventBus eventBus, Authenticator authenticator, Authorizator authorizator) { return createResources(eventBus, - new SimpleGroupMembershipResolver(), authenticator, authorizator, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE); + new SimpleGroupMembershipResolver(), authenticator, authorizator, MailboxConstants.DEFAULT_LIMIT_ANNOTATIONS_ON_MAILBOX, MailboxConstants.DEFAULT_LIMIT_ANNOTATION_SIZE, + PreDeletionHook.NO_PRE_DELETION_HOOK); } - private Resources createResources(EventBus eventBus, GroupMembershipResolver groupMembershipResolver, Authenticator authenticator, Authorizator authorizator, int limitAnnotationCount, int limitAnnotationSize) { + private Resources createResources(EventBus eventBus, GroupMembershipResolver groupMembershipResolver, Authenticator authenticator, Authorizator authorizator, + int limitAnnotationCount, int limitAnnotationSize, + Set<PreDeletionHook> preDeletionHooks) { InMemoryMailboxSessionMapperFactory mailboxSessionMapperFactory = new InMemoryMailboxSessionMapperFactory(); StoreRightManager storeRightManager = new StoreRightManager(mailboxSessionMapperFactory, new UnionMailboxACLResolver(), groupMembershipResolver, eventBus); @@ -174,7 +192,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM storeRightManager, quotaComponents, index, - PreDeletionHook.NO_PRE_DELETION_HOOK); + preDeletionHooks); eventBus.register(listeningCurrentQuotaUpdater); eventBus.register(new MailboxAnnotationListener(mailboxSessionMapperFactory, sessionProvider)); @@ -196,9 +214,9 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM factory, quotaComponents.getQuotaManager(), quotaComponents.getQuotaRootResolver(), - PreDeletionHook.NO_PRE_DELETION_HOOK); + mailboxManager.getPreDeletionHooks()); } - + @Override public QuotaManager retrieveQuotaManager(StoreMailboxManager mailboxManager) { return mailboxManager.getQuotaComponents().getQuotaManager(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
