You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2020/12/30 03:35:34 UTC

[james-project] 22/29: JAMES-3484 Test CassandraMailboxManager with batchSize

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit efead777d896f54b06c90c5aa865fdf1a0df7c97
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Dec 25 16:39:50 2020 +0700

    JAMES-3484 Test CassandraMailboxManager with batchSize
---
 .../cassandra/CassandraMailboxManagerProvider.java | 14 ++++++++++--
 .../cassandra/CassandraMailboxManagerTest.java     | 26 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 2 deletions(-)

diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
index b6fd1fa..e497c3f 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
@@ -71,6 +71,14 @@ public class CassandraMailboxManagerProvider {
     public static CassandraMailboxManager provideMailboxManager(CassandraCluster cassandra,
                                                                 PreDeletionHooks preDeletionHooks,
                                                                 CassandraConfiguration cassandraConfiguration) {
+        return provideMailboxManager(cassandra, preDeletionHooks, cassandraConfiguration,
+            MailboxManagerConfiguration.DEFAULT);
+    }
+
+    public static CassandraMailboxManager provideMailboxManager(CassandraCluster cassandra,
+                                                                PreDeletionHooks preDeletionHooks,
+                                                                CassandraConfiguration cassandraConfiguration,
+                                                                MailboxManagerConfiguration mailboxManagerConfiguration) {
         CassandraMessageId.Factory messageIdFactory = new CassandraMessageId.Factory();
 
         CassandraMailboxSessionMapperFactory mapperFactory = TestCassandraMailboxSessionMapperFactory.forTests(
@@ -78,12 +86,14 @@ public class CassandraMailboxManagerProvider {
             messageIdFactory,
             cassandraConfiguration);
 
-        return provideMailboxManager(cassandra.getConf(), preDeletionHooks, mapperFactory, messageIdFactory);
+        return provideMailboxManager(cassandra.getConf(), preDeletionHooks, mapperFactory,
+            mailboxManagerConfiguration, messageIdFactory);
     }
 
     private static CassandraMailboxManager provideMailboxManager(Session session,
                                                                 PreDeletionHooks preDeletionHooks,
                                                                 CassandraMailboxSessionMapperFactory mapperFactory,
+                                                                MailboxManagerConfiguration mailboxManagerConfiguration,
                                                                 MessageId.Factory messageIdFactory) {
         MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
         GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
@@ -111,7 +121,7 @@ public class CassandraMailboxManagerProvider {
 
         CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, sessionProvider, new NoMailboxPathLocker(),
             messageParser, messageIdFactory, eventBus, annotationManager, storeRightManager,
-            quotaComponents, index, MailboxManagerConfiguration.DEFAULT, preDeletionHooks);
+            quotaComponents, index, mailboxManagerConfiguration, preDeletionHooks);
 
         eventBus.register(quotaUpdater);
         eventBus.register(new MailboxAnnotationListener(mapperFactory, sessionProvider));
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
index 6dc9026..cc974d9 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerTest.java
@@ -76,6 +76,8 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageAttachmentMetadata;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
+import org.apache.james.mailbox.store.BatchSizes;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.PreDeletionHooks;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.mailbox.store.mail.MessageMapper;
@@ -846,4 +848,28 @@ public class CassandraMailboxManagerTest extends MailboxManagerTest<CassandraMai
                 cassandra.getCassandraConsistenciesConfiguration());
         }
     }
+
+    @Nested
+    class WithBatchSize extends MailboxManagerTest<CassandraMailboxManager> {
+        @Override
+        protected CassandraMailboxManager provideMailboxManager() {
+            CassandraMailboxManager mgt = CassandraMailboxManagerProvider.provideMailboxManager(
+                cassandra.getCassandraCluster(),
+                new PreDeletionHooks(preDeletionHooks(), new RecordingMetricFactory()),
+                CassandraConfiguration.DEFAULT_CONFIGURATION,
+                new MailboxManagerConfiguration(BatchSizes.uniqueBatchSize(5)));
+            return mgt;
+        }
+
+        @Override
+        protected SubscriptionManager provideSubscriptionManager() {
+            return new StoreSubscriptionManager(provideMailboxManager().getMapperFactory());
+        }
+
+        @Override
+        protected EventBus retrieveEventBus(CassandraMailboxManager mailboxManager) {
+            return mailboxManager.getEventBus();
+        }
+
+    }
 }


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