IMAP-370 In Memory implementation for the MOVE method

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

Branch: refs/heads/master
Commit: 6a90560af84d2b1d01fb8573b6ee57be6a761e2b
Parents: ca531c0
Author: Benoit Tellier <[email protected]>
Authored: Thu Mar 3 16:43:06 2016 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Fri Mar 4 19:35:24 2016 +0700

----------------------------------------------------------------------
 .../inmemory/InMemoryMailboxManager.java        | 43 +++++++++++++++++++
 .../inmemory/mail/InMemoryMessageMapper.java    | 28 ++++++------
 .../inmemory/InMemoryMailboxManagerTest.java    |  8 ++--
 .../inmemory/mail/InMemoryMapperProvider.java   | 45 ++++++++++++++++++++
 .../inmemory/mail/InMemoryMessageMoveTest.java  | 30 +++++++++++++
 .../manager/InMemoryIntegrationResources.java   |  4 +-
 .../mail/model/AbstractMessageMoveTest.java     |  4 +-
 .../inmemory/InMemoryMailboxTest.java           |  4 +-
 .../inmemory/host/InMemoryHostSystem.java       | 15 +++----
 9 files changed, 152 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/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
new file mode 100644
index 0000000..1814766
--- /dev/null
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManager.java
@@ -0,0 +1,43 @@
+/****************************************************************
+ * 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.inmemory;
+
+import java.util.List;
+
+import org.apache.james.mailbox.MailboxPathLocker;
+import org.apache.james.mailbox.acl.GroupMembershipResolver;
+import org.apache.james.mailbox.acl.MailboxACLResolver;
+import org.apache.james.mailbox.store.Authenticator;
+import org.apache.james.mailbox.store.StoreMailboxManager;
+
+import com.google.common.collect.Lists;
+
+public class InMemoryMailboxManager extends StoreMailboxManager<InMemoryId> {
+
+    public InMemoryMailboxManager(Authenticator authenticator, 
MailboxPathLocker locker, MailboxACLResolver aclResolver, 
GroupMembershipResolver groupMembershipResolver) {
+        super(new InMemoryMailboxSessionMapperFactory(), authenticator, 
locker, aclResolver, groupMembershipResolver);
+    }
+
+    @Override
+    public List<Capabilities> getSupportedCapabilities() {
+        return Lists.newArrayList(Capabilities.Basic, Capabilities.Move);
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
index b201d34..1986946 100644
--- 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
@@ -55,10 +55,14 @@ public class InMemoryMessageMapper extends 
AbstractMessageMapper<InMemoryId> {
     }
 
     private Map<Long, MailboxMessage<InMemoryId>> 
getMembershipByUidForMailbox(Mailbox<InMemoryId> mailbox) {
-        Map<Long, MailboxMessage<InMemoryId>> membershipByUid = 
mailboxByUid.get(mailbox.getMailboxId());
+        return getMembershipByUidForId(mailbox.getMailboxId());
+    }
+
+    private Map<Long, MailboxMessage<InMemoryId>> 
getMembershipByUidForId(InMemoryId id) {
+        Map<Long, MailboxMessage<InMemoryId>> membershipByUid = 
mailboxByUid.get(id);
         if (membershipByUid == null) {
             membershipByUid = new ConcurrentHashMap<Long, 
MailboxMessage<InMemoryId>>(INITIAL_SIZE);
-            mailboxByUid.put(mailbox.getMailboxId(), membershipByUid);
+            mailboxByUid.put(id, membershipByUid);
         }
         return membershipByUid;
     }
@@ -91,6 +95,15 @@ public class InMemoryMessageMapper extends 
AbstractMessageMapper<InMemoryId> {
         getMembershipByUidForMailbox(mailbox).remove(message.getUid());
     }
 
+    @Override
+    public MessageMetaData move(Mailbox<InMemoryId> mailbox, 
MailboxMessage<InMemoryId> original) throws MailboxException {
+        InMemoryId originalMailboxId = original.getMailboxId();
+        long uid = original.getUid();
+        MessageMetaData messageMetaData = copy(mailbox, original);
+        getMembershipByUidForId(originalMailboxId).remove(uid);
+        return messageMetaData;
+    }
+
     /**
      * @see 
org.apache.james.mailbox.store.mail.MessageMapper#findInMailbox(org.apache.james.mailbox.store.mail.model.Mailbox,
      *      org.apache.james.mailbox.model.MessageRange,
@@ -191,17 +204,6 @@ public class InMemoryMessageMapper extends 
AbstractMessageMapper<InMemoryId> {
     }
 
     /**
-     * (non-Javadoc)
-     * 
-     * @see 
org.apache.james.mailbox.store.mail.MessageMapper#move(org.apache.james.mailbox.store.mail.model.Mailbox,
-     *      MailboxMessage)
-     */
-    @Override
-    public MessageMetaData move(Mailbox<InMemoryId> mailbox, 
MailboxMessage<InMemoryId> original) throws MailboxException {
-        throw new UnsupportedOperationException("Not implemented - see 
https://issues.apache.org/jira/browse/IMAP-370";);
-    }
-
-    /**
      * Do nothing
      */
     public void endRequest() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java
index c843f96..f960885 100644
--- 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxManagerTest.java
@@ -31,6 +31,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.MockAuthenticator;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.junit.After;
@@ -67,7 +68,7 @@ public class InMemoryMailboxManagerTest extends 
AbstractMailboxManagerTest {
      * @throws BadCredentialsException 
      */
     @After
-    public void tearDown() throws BadCredentialsException, MailboxException {
+    public void tearDown() throws MailboxException {
         getMailboxManager().logout(session, true);
         getMailboxManager().endProcessingRequest(session);
         getMailboxManager().createSystemSession("test", 
LoggerFactory.getLogger("Test")).close();
@@ -78,12 +79,11 @@ public class InMemoryMailboxManagerTest extends 
AbstractMailboxManagerTest {
      */
     @Override
     protected void createMailboxManager() throws MailboxException {
-        
-        InMemoryMailboxSessionMapperFactory factory = new 
InMemoryMailboxSessionMapperFactory();
+
         MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
         GroupMembershipResolver groupMembershipResolver = new 
SimpleGroupMembershipResolver();
 
-        StoreMailboxManager<InMemoryId> mailboxManager = new 
StoreMailboxManager<InMemoryId>(factory, new MockAuthenticator(), aclResolver, 
groupMembershipResolver);
+        StoreMailboxManager<InMemoryId> mailboxManager = new 
InMemoryMailboxManager(new MockAuthenticator(), new JVMMailboxPathLocker(), 
aclResolver, groupMembershipResolver);
         mailboxManager.init();
         
         setMailboxManager(mailboxManager);

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
new file mode 100644
index 0000000..c0ce7fb
--- /dev/null
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMapperProvider.java
@@ -0,0 +1,45 @@
+package org.apache.james.mailbox.inmemory.mail;
+
+import java.util.Random;
+
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.store.mail.MailboxMapper;
+import org.apache.james.mailbox.store.mail.MessageMapper;
+import org.apache.james.mailbox.store.mail.model.MapperProvider;
+
+public class InMemoryMapperProvider implements MapperProvider<InMemoryId> {
+
+    private final Random random;
+
+    public InMemoryMapperProvider() {
+        random = new Random();
+    }
+
+    @Override
+    public MailboxMapper<InMemoryId> createMailboxMapper() throws 
MailboxException {
+        return new 
InMemoryMailboxSessionMapperFactory().createMailboxMapper(new 
MockMailboxSession("user"));
+    }
+
+    @Override
+    public MessageMapper<InMemoryId> createMessageMapper() throws 
MailboxException {
+        return new 
InMemoryMailboxSessionMapperFactory().createMessageMapper(new 
MockMailboxSession("user"));
+    }
+
+    @Override
+    public InMemoryId generateId() {
+        return InMemoryId.of(random.nextInt());
+    }
+
+    @Override
+    public void clearMapper() throws MailboxException {
+
+    }
+
+    @Override
+    public void ensureMapperPrepared() throws MailboxException {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMoveTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMoveTest.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMoveTest.java
new file mode 100644
index 0000000..0a1aaa3
--- /dev/null
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMoveTest.java
@@ -0,0 +1,30 @@
+/****************************************************************
+ * 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.inmemory.mail;
+
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.store.mail.model.AbstractMessageMoveTest;
+
+public class InMemoryMessageMoveTest extends 
AbstractMessageMoveTest<InMemoryId> {
+
+    public InMemoryMessageMoveTest() {
+        super(new InMemoryMapperProvider());
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/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 be94e75..b9c6f9d 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
@@ -25,6 +25,7 @@ import 
org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
 import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
 import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
 import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
@@ -52,8 +53,7 @@ public class InMemoryIntegrationResources implements 
IntegrationResources {
         MockAuthenticator mockAuthenticator = new MockAuthenticator();
         mockAuthenticator.addUser(ManagerTestResources.USER, 
ManagerTestResources.USER_PASS);
         MailboxSessionMapperFactory<InMemoryId> factory = new 
InMemoryMailboxSessionMapperFactory();
-        final StoreMailboxManager<InMemoryId> manager = new 
StoreMailboxManager<InMemoryId>(
-            factory,
+        final StoreMailboxManager<InMemoryId> manager = new 
InMemoryMailboxManager(
             mockAuthenticator,
             new NoMailboxPathLocker(),
             new UnionMailboxACLResolver(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMoveTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMoveTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMoveTest.java
index ed38feb..6a44f54 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMoveTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMoveTest.java
@@ -89,7 +89,9 @@ public abstract class AbstractMessageMoveTest<Id extends 
MailboxId> {
 
         MessageMetaData messageMetaData = messageMapper.move(benwaWorkMailbox, 
message1);
 
-        
assertThat(messageMetaData.getFlags()).isEqualTo(message1.createFlags());
+        Flags expectedFlags = message1.createFlags();
+        expectedFlags.add(Flags.Flag.RECENT);
+        assertThat(messageMetaData.getFlags()).isEqualTo(expectedFlags);
         
assertThat(messageMetaData.getUid()).isEqualTo(messageMapper.getLastUid(benwaWorkMailbox));
         
assertThat(messageMetaData.getModSeq()).isEqualTo(messageMapper.getHighestModSeq(benwaWorkMailbox));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java
----------------------------------------------------------------------
diff --git 
a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java
 
b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java
index c632abe..26b475e 100644
--- 
a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java
+++ 
b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTest.java
@@ -27,6 +27,7 @@ import 
org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
+import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
@@ -62,7 +63,8 @@ import org.junit.runners.Suite;
     SelectedInbox.class,
     SelectedState.class,
     UidSearch.class,
-    QuotaTest.class
+    QuotaTest.class,
+    Move.class
 })
 @GuiceModules({ InMemoryMailboxTestModule.class })
 public class InMemoryMailboxTest {

http://git-wip-us.apache.org/repos/asf/james-project/blob/6a90560a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
----------------------------------------------------------------------
diff --git 
a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
 
b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
index 3fa9e82..d054fe1 100644
--- 
a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
+++ 
b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/host/InMemoryHostSystem.java
@@ -29,13 +29,13 @@ import 
org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.inmemory.InMemoryId;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
+import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
 import org.apache.james.mailbox.inmemory.quota.InMemoryCurrentQuotaManager;
 import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.MockAuthenticator;
-import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
 import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
@@ -50,7 +50,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem {
 
     private static final ImapFeatures SUPPORTED_FEATURES = 
ImapFeatures.of(Feature.NAMESPACE_SUPPORT);
 
-    private StoreMailboxManager<InMemoryId> mailboxManager;
+    private InMemoryMailboxManager mailboxManager;
     private MockAuthenticator userManager;
 
     public static JamesImapHostSystem build() throws Exception {
@@ -73,19 +73,18 @@ public class InMemoryHostSystem extends JamesImapHostSystem 
{
     
     private void initFields() throws MailboxException {
         userManager = new MockAuthenticator();
-        InMemoryMailboxSessionMapperFactory factory = new 
InMemoryMailboxSessionMapperFactory();
         MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
         GroupMembershipResolver groupMembershipResolver = new 
SimpleGroupMembershipResolver();
 
-        mailboxManager = new StoreMailboxManager<InMemoryId>(factory, 
userManager, aclResolver, groupMembershipResolver);
-        QuotaRootResolver quotaRootResolver = new 
DefaultQuotaRootResolver(factory);
+        mailboxManager = new InMemoryMailboxManager(userManager, new 
JVMMailboxPathLocker(), aclResolver, groupMembershipResolver);
+        QuotaRootResolver quotaRootResolver = new 
DefaultQuotaRootResolver(mailboxManager.getMapperFactory());
 
         InMemoryPerUserMaxQuotaManager perUserMaxQuotaManager = new 
InMemoryPerUserMaxQuotaManager();
         perUserMaxQuotaManager.setDefaultMaxMessage(4096);
         perUserMaxQuotaManager.setDefaultMaxStorage(5L * 1024L * 1024L * 
1024L);
 
         InMemoryCurrentQuotaManager currentQuotaManager = new 
InMemoryCurrentQuotaManager(
-            new CurrentQuotaCalculator<InMemoryId>(factory, quotaRootResolver),
+            new 
CurrentQuotaCalculator<InMemoryId>(mailboxManager.getMapperFactory(), 
quotaRootResolver),
             mailboxManager);
 
         StoreQuotaManager quotaManager = new StoreQuotaManager();
@@ -102,7 +101,7 @@ public class InMemoryHostSystem extends JamesImapHostSystem 
{
 
         mailboxManager.init();
 
-        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new 
StoreSubscriptionManager(factory), quotaManager, quotaRootResolver);
+        final ImapProcessor defaultImapProcessorFactory = 
DefaultImapProcessorFactory.createDefaultProcessor(mailboxManager, new 
StoreSubscriptionManager(mailboxManager.getMapperFactory()), quotaManager, 
quotaRootResolver);
         configure(new DefaultImapDecoderFactory().buildImapDecoder(),
                 new DefaultImapEncoderFactory().buildImapEncoder(),
                 defaultImapProcessorFactory);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to