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]

Reply via email to