You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/01/15 03:21:55 UTC

[20/30] james-project git commit: JAMES-2641 Make StoreMailboxManager::batchSizes final

JAMES-2641 Make StoreMailboxManager::batchSizes final

To do this we need to let the injection system providing the built value.

Note that we inject a more generic "MailboxManagerConfiguration" class in order to make
future parameters addition easier in the future.

Note that Sprint (& memory) did not configure the batch size. Thus to reduce diff size the constructors directly provide default value as a temporary solution.


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

Branch: refs/heads/master
Commit: 55208516fd5081696c26f0dfeb1073112568f9e5
Parents: ff7f30e
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Jan 8 11:26:03 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 15 10:10:04 2019 +0700

----------------------------------------------------------------------
 .../cassandra/CassandraMailboxManager.java      |  9 ++-
 .../CassandraMailboxManagerProvider.java        |  3 +-
 .../cassandra/CassandraTestSystemFixture.java   |  3 +-
 .../CassandraMailboxManagerAttachmentTest.java  |  5 +-
 .../james/mailbox/jpa/JPAMailboxManager.java    |  5 +-
 .../jpa/openjpa/OpenJPAMailboxManager.java      |  2 +-
 .../inmemory/InMemoryMailboxManager.java        |  5 +-
 .../store/MailboxManagerConfiguration.java      | 48 ++++++++++++++
 .../mailbox/store/StoreMailboxManager.java      | 66 +++++---------------
 .../cassandra/host/CassandraHostSystem.java     |  3 +-
 .../modules/mailbox/CassandraMailboxModule.java |  6 +-
 .../james/modules/ConfigurationProbe.java       | 12 ++--
 12 files changed, 94 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
index f963706..e539e57 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxManager.java
@@ -31,6 +31,7 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.StoreMessageManager;
@@ -61,7 +62,8 @@ public class CassandraMailboxManager extends StoreMailboxManager {
     public CassandraMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory, Authenticator authenticator, Authorizator authorizator,
                                    MailboxPathLocker locker, MessageParser messageParser,
                                    MessageId.Factory messageIdFactory, DelegatingMailboxListener delegatingMailboxListener,
-                                   StoreMailboxAnnotationManager annotationManager, StoreRightManager storeRightManager) {
+                                   StoreMailboxAnnotationManager annotationManager, StoreRightManager storeRightManager,
+                                   MailboxManagerConfiguration configuration) {
         super(mapperFactory,
             authenticator,
             authorizator,
@@ -70,7 +72,8 @@ public class CassandraMailboxManager extends StoreMailboxManager {
             messageIdFactory,
             annotationManager,
             delegatingMailboxListener,
-            storeRightManager);
+            storeRightManager,
+            configuration);
         this.locker = locker;
         this.mapperFactory = mapperFactory;
     }
@@ -109,7 +112,7 @@ public class CassandraMailboxManager extends StoreMailboxManager {
             getQuotaRootResolver(),
             getMessageParser(),
             getMessageIdFactory(),
-            getBatchSizes(),
+            configuration.getBatchSizes(),
             getStoreRightManager());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerProvider.java
----------------------------------------------------------------------
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 8656080..122b211 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
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.NoMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreRightManager;
@@ -69,7 +70,7 @@ public class CassandraMailboxManagerProvider {
             LIMIT_ANNOTATIONS, LIMIT_ANNOTATION_SIZE);
 
         CassandraMailboxManager manager = new CassandraMailboxManager(mapperFactory, noAuthenticator, noAuthorizator, new NoMailboxPathLocker(),
-            messageParser, messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager);
+            messageParser, messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
 
         CassandraPerUserMaxQuotaManager maxQuotaManager = new CassandraPerUserMaxQuotaManager(new CassandraPerUserMaxQuotaDao(session),
             new CassandraPerDomainMaxQuotaDao(session),

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
index 916029a..51d937f 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
@@ -35,6 +35,7 @@ import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.NoMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreMessageIdManager;
@@ -65,7 +66,7 @@ public class CassandraTestSystemFixture {
 
         CassandraMailboxManager cassandraMailboxManager = new CassandraMailboxManager(mapperFactory, mock(Authenticator.class), mock(Authorizator.class),
             new NoMailboxPathLocker(), new MessageParser(), new CassandraMessageId.Factory(),
-            delegatingMailboxListener, annotationManager, storeRightManager);
+            delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
         cassandraMailboxManager.init();
 
         return cassandraMailboxManager;

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
index be88f00..ceffb79 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxManagerAttachmentTest.java
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.store.AbstractMailboxManagerAttachmentTest;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.NoMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
@@ -92,14 +93,14 @@ public class CassandraMailboxManagerAttachmentTest extends AbstractMailboxManage
 
         mailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory,
             noAuthenticator, noAuthorizator, new NoMailboxPathLocker(), new MessageParser(),
-            messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager);
+            messageIdFactory, delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
         mailboxManager.init();
         MessageParser failingMessageParser = mock(MessageParser.class);
         when(failingMessageParser.retrieveAttachments(any()))
             .thenThrow(new RuntimeException("Message parser set to fail"));
         parseFailingMailboxManager = new CassandraMailboxManager(mailboxSessionMapperFactory, noAuthenticator, noAuthorizator,
             new NoMailboxPathLocker(), failingMessageParser, messageIdFactory,
-            delegatingMailboxListener, annotationManager, storeRightManager);
+            delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
         parseFailingMailboxManager.init();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
index d8e9759..8b581ed 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/JPAMailboxManager.java
@@ -29,6 +29,7 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.StoreRightManager;
@@ -58,11 +59,11 @@ public abstract class JPAMailboxManager extends StoreMailboxManager {
                              StoreRightManager storeRightManager) {
         super(mailboxSessionMapperFactory, authenticator, authorizator, locker,
             messageParser, messageIdFactory, annotationManager,
-            delegatingMailboxListener, storeRightManager);
+            delegatingMailboxListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
     }
     
     @Override
-    protected Mailbox doCreateMailbox(MailboxPath path, MailboxSession session) throws MailboxException {
+    protected Mailbox doCreateMailbox(MailboxPath path, MailboxSession session) {
         return  new JPAMailbox(path, randomUidValidity());
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
index 2d637f4..121dc9d 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/openjpa/OpenJPAMailboxManager.java
@@ -71,7 +71,7 @@ public class OpenJPAMailboxManager extends JPAMailboxManager {
             getQuotaRootResolver(),
             getMessageParser(),
             getMessageIdFactory(),
-            getBatchSizes(),
+            configuration.getBatchSizes(),
             getStoreRightManager());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
----------------------------------------------------------------------
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 821e4e3..4326f6a 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
@@ -28,6 +28,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreMailboxManager;
@@ -55,7 +56,7 @@ public class InMemoryMailboxManager extends StoreMailboxManager {
                                   StoreMailboxAnnotationManager annotationManager,
                                   StoreRightManager storeRightManager) {
         super(mailboxSessionMapperFactory, authenticator, authorizator, locker, messageParser, messageIdFactory,
-            annotationManager, delegatingMailboxListener, storeRightManager);
+            annotationManager, delegatingMailboxListener, storeRightManager, MailboxManagerConfiguration.DEFAULT);
     }
 
     @Override
@@ -85,7 +86,7 @@ public class InMemoryMailboxManager extends StoreMailboxManager {
             getQuotaRootResolver(),
             getMessageParser(),
             getMessageIdFactory(),
-            getBatchSizes(),
+            configuration.getBatchSizes(),
             getStoreRightManager());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxManagerConfiguration.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxManagerConfiguration.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxManagerConfiguration.java
new file mode 100644
index 0000000..63c47e7
--- /dev/null
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MailboxManagerConfiguration.java
@@ -0,0 +1,48 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.store;
+
+import javax.inject.Inject;
+
+public class MailboxManagerConfiguration {
+    public static final MailboxManagerConfiguration DEFAULT = new MailboxManagerConfiguration(BatchSizes.builder()
+        .copyBatchSize(MessageBatcher.NO_BATCH_SIZE)
+        .moveBatchSize(MessageBatcher.NO_BATCH_SIZE)
+        .build());
+
+    private final BatchSizes batchSizes;
+
+    @Inject
+    public MailboxManagerConfiguration(BatchSizes batchSizes) {
+        this.batchSizes = batchSizes;
+    }
+
+    public BatchSizes getBatchSizes() {
+        return batchSizes;
+    }
+
+    public MessageBatcher getCopyBatcher() {
+        return new MessageBatcher(batchSizes.getCopyBatchSize());
+    }
+
+    public MessageBatcher getMoveBatcher() {
+        return new MessageBatcher(batchSizes.getMoveBatchSize());
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/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 e9b062d..04cdc7d 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
@@ -119,21 +119,20 @@ public class StoreMailboxManager implements MailboxManager {
     private final MessageParser messageParser;
     private final Factory messageIdFactory;
     private final MailboxSessionIdGenerator idGenerator;
+    protected final MailboxManagerConfiguration configuration;
 
     private Authorizator authorizator;
-    private MessageBatcher copyBatcher;
-    private MessageBatcher moveBatcher;
     private MessageSearchIndex index;
     private QuotaManager quotaManager;
     private QuotaRootResolver quotaRootResolver;
     private QuotaUpdater quotaUpdater;
-    private BatchSizes batchSizes = BatchSizes.defaultValues();
 
     @Inject
     public StoreMailboxManager(MailboxSessionMapperFactory mailboxSessionMapperFactory, Authenticator authenticator, Authorizator authorizator,
                                MailboxPathLocker locker, MessageParser messageParser,
                                MessageId.Factory messageIdFactory, MailboxAnnotationManager annotationManager,
-                               DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager) {
+                               DelegatingMailboxListener delegatingListener, StoreRightManager storeRightManager,
+                               MailboxManagerConfiguration configuration) {
         Preconditions.checkNotNull(delegatingListener);
         Preconditions.checkNotNull(mailboxSessionMapperFactory);
 
@@ -147,6 +146,7 @@ public class StoreMailboxManager implements MailboxManager {
         this.delegatingListener = delegatingListener;
         this.storeRightManager = storeRightManager;
         this.idGenerator = new RandomMailboxSessionIdGenerator();
+        this.configuration = configuration;
     }
 
     public Factory getMessageIdFactory() {
@@ -165,30 +165,6 @@ public class StoreMailboxManager implements MailboxManager {
         this.quotaUpdater = quotaUpdater;
     }
 
-    public void setCopyBatchSize(BatchSizes batchSizes) {
-        this.copyBatcher = new MessageBatcher(batchSizes.getCopyBatchSize());
-    }
-
-    public int getCopyBatchSize() {
-        return copyBatcher.getBatchSize();
-    }
-
-    public void setMoveBatchSize(BatchSizes batchSizes) {
-        this.moveBatcher = new MessageBatcher(batchSizes.getMoveBatchSize());
-    }
-
-    public int getMoveBatchSize() {
-        return moveBatcher.getBatchSize();
-    }
-
-    public void setBatchSizes(BatchSizes batchSizes) {
-        this.batchSizes = batchSizes;
-    }
-
-    public BatchSizes getBatchSizes() {
-        return batchSizes;
-    }
-
     /**
      * Init the {@link MailboxManager}
      *
@@ -212,12 +188,6 @@ public class StoreMailboxManager implements MailboxManager {
         if (quotaUpdater != null && quotaUpdater instanceof MailboxListener) {
             this.addGlobalListener((MailboxListener) quotaUpdater, session);
         }
-        if (copyBatcher == null) {
-            copyBatcher = new MessageBatcher(MessageBatcher.NO_BATCH_SIZE);
-        }
-        if (moveBatcher == null) {
-            moveBatcher = new MessageBatcher(MessageBatcher.NO_BATCH_SIZE);
-        }
         if (hasCapability(MailboxCapabilities.Annotation)) {
             this.addGlobalListener(new MailboxAnnotationListener(mailboxSessionMapperFactory, this), session);
         }
@@ -400,7 +370,7 @@ public class StoreMailboxManager implements MailboxManager {
     protected StoreMessageManager createMessageManager(Mailbox mailbox, MailboxSession session) throws MailboxException {
         return new StoreMessageManager(DEFAULT_NO_MESSAGE_CAPABILITIES, getMapperFactory(), getMessageSearchIndex(), getDelegationListener(),
                 getLocker(), mailbox, getQuotaManager(),
-                getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), getBatchSizes(),
+                getQuotaRootResolver(), getMessageParser(), getMessageIdFactory(), configuration.getBatchSizes(),
             getStoreRightManager());
     }
 
@@ -621,35 +591,33 @@ public class StoreMailboxManager implements MailboxManager {
     }
 
     @Override
-    public List<MessageRange> copyMessages(MessageRange set, MailboxPath from, MailboxPath to, final MailboxSession session) throws MailboxException {
-        final StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
-        final StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
+    public List<MessageRange> copyMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException {
+        StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
+        StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
 
         return copyMessages(set, session, toMailbox, fromMailbox);
     }
 
     @Override
-    public List<MessageRange> copyMessages(MessageRange set, MailboxId from, MailboxId to, final MailboxSession session) throws MailboxException {
-        final StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
-        final StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
+    public List<MessageRange> copyMessages(MessageRange set, MailboxId from, MailboxId to, MailboxSession session) throws MailboxException {
+        StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
+        StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
 
         return copyMessages(set, session, toMailbox, fromMailbox);
     }
 
     
-    private List<MessageRange> copyMessages(MessageRange set, final MailboxSession session,
-            final StoreMessageManager toMailbox, final StoreMessageManager fromMailbox) throws MailboxException {
-        return copyBatcher.batchMessages(set,
+    private List<MessageRange> copyMessages(MessageRange set, MailboxSession session, StoreMessageManager toMailbox, StoreMessageManager fromMailbox) throws MailboxException {
+        return configuration.getCopyBatcher().batchMessages(set,
             messageRange -> fromMailbox.copyTo(messageRange, toMailbox, session));
     }
 
     @Override
-    public List<MessageRange> moveMessages(MessageRange set, MailboxPath from, MailboxPath to, final MailboxSession session) throws MailboxException {
-        final StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
-        final StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
+    public List<MessageRange> moveMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException {
+        StoreMessageManager toMailbox = (StoreMessageManager) getMailbox(to, session);
+        StoreMessageManager fromMailbox = (StoreMessageManager) getMailbox(from, session);
 
-        return moveBatcher.batchMessages(set,
-            messageRange -> fromMailbox.moveTo(messageRange, toMailbox, session));
+        return configuration.getMoveBatcher().batchMessages(set, messageRange -> fromMailbox.moveTo(messageRange, toMailbox, session));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
index b78c89f..7b9c160 100644
--- a/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
+++ b/mpt/impl/imap-mailbox/cassandra/src/test/java/org/apache/james/mpt/imapmailbox/cassandra/host/CassandraHostSystem.java
@@ -40,6 +40,7 @@ import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaDao;
 import org.apache.james.mailbox.cassandra.quota.CassandraPerUserMaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.JVMMailboxPathLocker;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
 import org.apache.james.mailbox.store.StoreRightManager;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
@@ -89,7 +90,7 @@ public class CassandraHostSystem extends JamesImapHostSystem {
         StoreMailboxAnnotationManager annotationManager = new StoreMailboxAnnotationManager(mapperFactory, storeRightManager);
         mailboxManager = new CassandraMailboxManager(mapperFactory, authenticator, authorizator,
             new JVMMailboxPathLocker(), new MessageParser(), messageIdFactory,
-            delegatingMailboxListener, annotationManager, storeRightManager);
+            delegatingMailboxListener, annotationManager, storeRightManager, MailboxManagerConfiguration.DEFAULT);
         QuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(mailboxManager, mapperFactory);
 
         perUserMaxQuotaManager = new CassandraPerUserMaxQuotaManager(

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
index ebd268f..07aaf33 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java
@@ -76,7 +76,6 @@ import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.Authorizator;
-import org.apache.james.mailbox.store.BatchSizes;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.NoMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreAttachmentManager;
@@ -193,13 +192,10 @@ public class CassandraMailboxModule extends AbstractModule {
     @Named(Names.MAILBOXMANAGER_NAME)
     @Singleton
     public MailboxManager provideMailboxManager(CassandraMailboxManager cassandraMailboxManager, ListeningCurrentQuotaUpdater quotaUpdater,
-                                                QuotaManager quotaManager, QuotaRootResolver quotaRootResolver, BatchSizes batchSizes) throws MailboxException {
+                                                QuotaManager quotaManager, QuotaRootResolver quotaRootResolver) throws MailboxException {
         cassandraMailboxManager.setQuotaUpdater(quotaUpdater);
         cassandraMailboxManager.setQuotaManager(quotaManager);
         cassandraMailboxManager.setQuotaRootResolver(quotaRootResolver);
-        cassandraMailboxManager.setBatchSizes(batchSizes);
-        cassandraMailboxManager.setMoveBatchSize(batchSizes);
-        cassandraMailboxManager.setCopyBatchSize(batchSizes);
         cassandraMailboxManager.init();
         return cassandraMailboxManager;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/55208516/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java
----------------------------------------------------------------------
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java
index de934c3..25209bf 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/ConfigurationProbe.java
@@ -21,23 +21,23 @@ package org.apache.james.modules;
 
 import javax.inject.Inject;
 
-import org.apache.james.mailbox.store.StoreMailboxManager;
+import org.apache.james.mailbox.store.MailboxManagerConfiguration;
 import org.apache.james.utils.GuiceProbe;
 
 public class ConfigurationProbe implements GuiceProbe {
 
-    private final StoreMailboxManager storeMailboxManager;
+    private final MailboxManagerConfiguration configuration;
 
     @Inject
-    private ConfigurationProbe(StoreMailboxManager storeMailboxManager) {
-        this.storeMailboxManager = storeMailboxManager;
+    private ConfigurationProbe(MailboxManagerConfiguration configuration) {
+        this.configuration = configuration;
     }
 
     public int getMoveBatchSize() {
-        return storeMailboxManager.getMoveBatchSize();
+        return configuration.getBatchSizes().getMoveBatchSize();
     }
 
     public int getCopyBatchSize() {
-        return storeMailboxManager.getCopyBatchSize();
+        return configuration.getBatchSizes().getCopyBatchSize();
     }
 }


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