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 2016/03/04 13:38:11 UTC
[14/20] james-project git commit: IMAP-370 In Memory implementation
for the MOVE method
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 <bt...@linagora.com>
Authored: Thu Mar 3 16:43:06 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org