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 ad...@apache.org on 2017/11/03 12:27:24 UTC

[01/15] james-project git commit: PROTOCOLS-117 General fixes: Don't rely on JMock for ACL related IMAP tests

Repository: james-project
Updated Branches:
  refs/heads/master 99c181977 -> f1d6f12f6


PROTOCOLS-117 General fixes: Don't rely on JMock for ACL related IMAP tests

Mockito is more robust to future changes, and leads to more readable code.

Future commits would have broke these tests.


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

Branch: refs/heads/master
Commit: 8ffa76dbf5552d01ce2314e3ea45e6494df3f2a3
Parents: 1cdb6b7
Author: benwa <bt...@linagora.com>
Authored: Tue Oct 31 10:27:35 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 09:34:03 2017 +0700

----------------------------------------------------------------------
 .../imap/processor/DeleteACLProcessorTest.java  | 236 ++++++++---------
 .../imap/processor/GetACLProcessorTest.java     | 218 +++++++---------
 .../imap/processor/ListRightsProcessorTest.java | 218 +++++++---------
 .../imap/processor/SetACLProcessorTest.java     | 254 ++++++++-----------
 4 files changed, 387 insertions(+), 539 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8ffa76db/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
index 4228736..aaa908d 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/DeleteACLProcessorTest.java
@@ -19,11 +19,20 @@
 
 package org.apache.james.imap.processor;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.message.response.StatusResponse;
+import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.api.process.ImapSession;
@@ -41,11 +50,9 @@ import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 /**
  * DeleteACLProcessor Test.
@@ -57,163 +64,126 @@ public class DeleteACLProcessorTest {
     private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
     private static final String USER_1 = "user1";
 
-    ImapSession imapSessionStub;
-    MailboxManager mailboxManagerStub;
-    MailboxSession mailboxSessionStub;
-    MessageManager messageManagerStub;
-    MetaData metaDataStub;
-    Mockery mockery = new JUnit4Mockery();
-    DeleteACLRequest deleteACLRequest;
-    UnpooledStatusResponseFactory statusResponseFactory;
-    DeleteACLProcessor subject;
-    User user1Stub;
-    EntryKey user1Key;
-    MailboxPath path;
-
-    private Expectations prepareRightsExpectations() throws MailboxException {
-        return new Expectations() {
-            {
-
-                allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY);
-                will(returnValue(mailboxSessionStub));
-
-                allowing(imapSessionStub).getState();
-                will(returnValue(ImapSessionState.AUTHENTICATED));
-
-                allowing(mailboxSessionStub).getUser();
-                will(returnValue(user1Stub));
-
-                allowing(user1Stub).getUserName();
-                will(returnValue(USER_1));
-
-                allowing(mailboxManagerStub).startProcessingRequest(with(same(mailboxSessionStub)));
-                allowing(mailboxManagerStub).endProcessingRequest(with(same(mailboxSessionStub)));
-
-                allowing(messageManagerStub).getMetaData(with(any(Boolean.class)), with(same(mailboxSessionStub)), with(any(FetchGroup.class)));
-                will(returnValue(metaDataStub));
-
-            }
-        };
-    }
+    private ImapSession imapSession;
+    private MailboxManager mailboxManager;
+    private MailboxSession mailboxSession;
+    private MetaData metaData;
+    private DeleteACLRequest deleteACLRequest;
+    private DeleteACLProcessor subject;
+    private EntryKey user1Key;
+    private MailboxPath path;
+    private Responder responder;
+    private ArgumentCaptor<ImapResponseMessage> argumentCaptor;
 
     @Before
     public void setUp() throws Exception {
         path = MailboxPath.forUser(USER_1, MAILBOX_NAME);
-        statusResponseFactory = new UnpooledStatusResponseFactory();
-        mailboxManagerStub = mockery.mock(MailboxManager.class);
-        subject = new DeleteACLProcessor(mockery.mock(ImapProcessor.class), mailboxManagerStub, statusResponseFactory, new NoopMetricFactory());
-        imapSessionStub = mockery.mock(ImapSession.class);
-        mailboxSessionStub = mockery.mock(MailboxSession.class);
-        user1Stub = mockery.mock(User.class);
-        messageManagerStub = mockery.mock(MessageManager.class);
-        metaDataStub = mockery.mock(MetaData.class);
-
-        deleteACLRequest = new DeleteACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1);
+        UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
+        mailboxManager = mock(MailboxManager.class);
+        subject = new DeleteACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
+        imapSession = mock(ImapSession.class);
+        mailboxSession = mock(MailboxSession.class);
+        User user1 = mock(User.class);
+        MessageManager messageManager = mock(MessageManager.class);
+        metaData = mock(MetaData.class);
+        responder = mock(Responder.class);
+
+        when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))
+            .thenReturn(mailboxSession);
+        when(imapSession.getState())
+            .thenReturn(ImapSessionState.AUTHENTICATED);
+        when(mailboxSession.getUser())
+            .thenReturn(user1);
+        when(user1.getUserName())
+            .thenReturn(USER_1);
+        when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
+            .thenReturn(metaData);
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
+
+        deleteACLRequest = new DeleteACLRequest("TAG",
+            ImapCommand.anyStateCommand("Name"),
+            MAILBOX_NAME,
+            USER_1);
 
         user1Key = EntryKey.deserialize(USER_1);
+
+        argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
     }
     
     @Test
     public void testNoListRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
+        subject.doProcess(deleteACLRequest, responder, imapSession);
 
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(deleteACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
-    
+
     @Test
     public void testNoAdminRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
+        subject.doProcess(deleteACLRequest, responder, imapSession);
 
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
+    }
 
-        mockery.checking(expectations);
+    @Test
+    public void testNonExistentMailboxName() throws Exception {
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenThrow(new MailboxNotFoundException(""));
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        subject.doProcess(deleteACLRequest, responder, imapSession);
 
-        subject.doProcess(deleteACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-    }
-    
-    @Test
-    public void testInexistentMailboxName() throws Exception {
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.throwException(new MailboxNotFoundException(path)));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(deleteACLRequest, responderMock, imapSessionStub);
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
 
     
     @Test
     public void testDelete() throws MailboxException {
-        final MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
-
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).applyRightsCommand(expectations.with(path), expectations.with(MailboxACL.command().key(user1Key).noRights().asReplacement()), expectations.with(mailboxSessionStub));
-
-        expectations.allowing(metaDataStub).getACL();
-        expectations.will(Expectations.returnValue(acl));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.OK)));
-            }
-        });
-
-        DeleteACLRequest r = new DeleteACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1);
-        subject.doProcess(r, responderMock, imapSessionStub);
+        MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(true);
+        when(metaData.getACL()).thenReturn(acl);
+
+        subject.doProcess(deleteACLRequest, responder, imapSession);
+
+        verify(mailboxManager).applyRightsCommand(path,
+            MailboxACL.command().key(user1Key).noRights().asReplacement(),
+            mailboxSession);
+
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
+
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.OK_RESPONSE_MATCHER::matches);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8ffa76db/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
index 40c47f0..5e46bfa 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetACLProcessorTest.java
@@ -19,11 +19,20 @@
 
 package org.apache.james.imap.processor;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.message.response.StatusResponse;
+import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.api.process.ImapSession;
@@ -36,16 +45,13 @@ import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
 import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
-import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 /**
  * GetACLProcessor Test.
@@ -56,160 +62,118 @@ public class GetACLProcessorTest {
     private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
     private static final String USER_1 = "user1";
 
-    ImapSession imapSessionStub;
-    MailboxManager mailboxManagerStub;
-    MailboxSession mailboxSessionStub;
-    MessageManager messageManagerStub;
-    MetaData metaDataStub;
-    Mockery mockery = new JUnit4Mockery();
-    GetACLRequest getACLRequest;
-    UnpooledStatusResponseFactory statusResponseFactory;
-    GetACLProcessor subject;
-    User user1Stub;
-    MailboxPath path;
-
-    private Expectations prepareRightsExpectations() throws MailboxException {
-        return new Expectations() {
-            {
-
-                allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY);
-                will(returnValue(mailboxSessionStub));
-
-                allowing(imapSessionStub).getState();
-                will(returnValue(ImapSessionState.AUTHENTICATED));
-
-                allowing(mailboxSessionStub).getUser();
-                will(returnValue(user1Stub));
-
-                allowing(user1Stub).getUserName();
-                will(returnValue(USER_1));
-
-                allowing(mailboxManagerStub).startProcessingRequest(with(same(mailboxSessionStub)));
-                allowing(mailboxManagerStub).endProcessingRequest(with(same(mailboxSessionStub)));
-
-                allowing(messageManagerStub).getMetaData(with(any(Boolean.class)), with(same(mailboxSessionStub)), with(any(FetchGroup.class)));
-                will(returnValue(metaDataStub));
-
-            }
-        };
-    }
+    private ImapSession imapSession;
+    private MailboxManager mailboxManager;
+    private MailboxSession mailboxSession;
+    private MetaData metaData;
+    private GetACLRequest getACLRequest;
+    private GetACLProcessor subject;
+    private MailboxPath path;
+    private ArgumentCaptor<ImapResponseMessage> argumentCaptor;
+    private Responder responder;
 
     @Before
     public void setUp() throws Exception {
         path = MailboxPath.forUser(USER_1, MAILBOX_NAME);
-        statusResponseFactory = new UnpooledStatusResponseFactory();
-        mailboxManagerStub = mockery.mock(MailboxManager.class);
-        subject = new GetACLProcessor(mockery.mock(ImapProcessor.class), mailboxManagerStub, statusResponseFactory, new NoopMetricFactory());
-        imapSessionStub = mockery.mock(ImapSession.class);
-        mailboxSessionStub = mockery.mock(MailboxSession.class);
-        user1Stub = mockery.mock(User.class);
-        messageManagerStub = mockery.mock(MessageManager.class);
-        metaDataStub = mockery.mock(MetaData.class);
+        UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
+        mailboxManager = mock(MailboxManager.class);
+        subject = new GetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
+        imapSession = mock(ImapSession.class);
+        mailboxSession = mock(MailboxSession.class);
+        User user1 = mock(User.class);
+        MessageManager messageManager = mock(MessageManager.class);
+        metaData = mock(MetaData.class);
+        responder = mock(Responder.class);
 
         getACLRequest = new GetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME);
 
+        when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))
+            .thenReturn(mailboxSession);
+        when(imapSession.getState())
+            .thenReturn(ImapSessionState.AUTHENTICATED);
+        when(mailboxSession.getUser())
+            .thenReturn(user1);
+        when(user1.getUserName())
+            .thenReturn(USER_1);
+        when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
+            .thenReturn(metaData);
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
+
+        argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
     }
 
     @Test
     public void testNoListRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
+        subject.doProcess(getACLRequest, responder, imapSession);
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(getACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testNoAdminRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
+        subject.doProcess(getACLRequest, responder, imapSession);
 
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(getACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testInexistentMailboxName() throws Exception {
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.throwException(new MailboxNotFoundException(path)));
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenThrow(new MailboxNotFoundException(""));
 
-        mockery.checking(expectations);
+        subject.doProcess(getACLRequest, responder, imapSession);
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-        subject.doProcess(getACLRequest, responderMock, imapSessionStub);
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
 
     @Test
     public void testSufficientRights() throws Exception {
-
-        final MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
-
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-
-        expectations.allowing(metaDataStub).getACL();
-        expectations.will(Expectations.returnValue(acl));
-
-        mockery.checking(expectations);
-
-        final ACLResponse response = new ACLResponse(MAILBOX_NAME, acl);
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(equal(response)));
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.OK)));
-            }
-        });
-
-        subject.doProcess(getACLRequest, responderMock, imapSessionStub);
+        MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(true);
+        when(metaData.getACL()).thenReturn(acl);
+
+        ACLResponse response = new ACLResponse(MAILBOX_NAME, acl);
+        subject.doProcess(getACLRequest, responder, imapSession);
+
+        verify(responder, times(2)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
+
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(2);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .isEqualTo(response);
+        assertThat(argumentCaptor.getAllValues().get(1))
+            .matches(StatusResponseTypeMatcher.OK_RESPONSE_MATCHER::matches);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8ffa76db/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
index d14c900..f9844db 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/ListRightsProcessorTest.java
@@ -19,11 +19,20 @@
 
 package org.apache.james.imap.processor;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.message.response.StatusResponse;
+import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.api.process.ImapSession;
@@ -35,7 +44,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSession.User;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageManager.MetaData;
-import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxACL;
@@ -43,11 +51,9 @@ import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 /**
  * ListRightsProcessor Test.
@@ -59,57 +65,45 @@ public class ListRightsProcessorTest {
     private static final String MAILBOX_NAME = ImapConstants.INBOX_NAME;
     private static final String USER_1 = "user1";
 
-    ImapSession imapSessionStub;
-    MailboxManager mailboxManagerStub;
-    MailboxSession mailboxSessionStub;
-    MessageManager messageManagerStub;
-    MetaData metaDataStub;
-    Mockery mockery = new JUnit4Mockery();
-    ListRightsRequest listRightsRequest;
-    UnpooledStatusResponseFactory statusResponseFactory;
-    ListRightsProcessor subject;
-    User user1Stub;
-    EntryKey user1Key;
-    Rfc4314Rights[] listRights;
-    MailboxPath path;
-
-    private Expectations prepareRightsExpectations() throws MailboxException {
-        return new Expectations() {
-            {
-
-                allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY);
-                will(returnValue(mailboxSessionStub));
-
-                allowing(imapSessionStub).getState();
-                will(returnValue(ImapSessionState.AUTHENTICATED));
-
-                allowing(mailboxSessionStub).getUser();
-                will(returnValue(user1Stub));
-
-                allowing(user1Stub).getUserName();
-                will(returnValue(USER_1));
-
-                allowing(mailboxManagerStub).startProcessingRequest(with(same(mailboxSessionStub)));
-                allowing(mailboxManagerStub).endProcessingRequest(with(same(mailboxSessionStub)));
-
-                allowing(messageManagerStub).getMetaData(with(any(Boolean.class)), with(same(mailboxSessionStub)), with(any(FetchGroup.class)));
-                will(returnValue(metaDataStub));
-
-            }
-        };
-    }
+    private ImapSession imapSession;
+    private MailboxManager mailboxManager;
+    private MailboxSession mailboxSession;
+    private MetaData metaData;
+    private ListRightsRequest listRightsRequest;
+    private ListRightsProcessor subject;
+    private EntryKey user1Key;
+    private Rfc4314Rights[] listRights;
+    private MailboxPath path;
+    private Responder responder;
+    private ArgumentCaptor<ImapResponseMessage> argumentCaptor;
 
     @Before
     public void setUp() throws Exception {
         path = MailboxPath.forUser(USER_1, MAILBOX_NAME);
-        statusResponseFactory = new UnpooledStatusResponseFactory();
-        mailboxManagerStub = mockery.mock(MailboxManager.class);
-        subject = new ListRightsProcessor(mockery.mock(ImapProcessor.class), mailboxManagerStub, statusResponseFactory, new NoopMetricFactory());
-        imapSessionStub = mockery.mock(ImapSession.class);
-        mailboxSessionStub = mockery.mock(MailboxSession.class);
-        user1Stub = mockery.mock(User.class);
-        messageManagerStub = mockery.mock(MessageManager.class);
-        metaDataStub = mockery.mock(MetaData.class);
+        UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
+        mailboxManager = mock(MailboxManager.class);
+        subject = new ListRightsProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
+        imapSession = mock(ImapSession.class);
+        mailboxSession = mock(MailboxSession.class);
+        User user1 = mock(User.class);
+        MessageManager messageManager = mock(MessageManager.class);
+        metaData = mock(MetaData.class);
+        responder = mock(Responder.class);
+
+        argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
+
+        when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))
+            .thenReturn(mailboxSession);
+        when(imapSession.getState())
+            .thenReturn(ImapSessionState.AUTHENTICATED);
+        when(mailboxSession.getUser())
+            .thenReturn(user1);
+        when(user1.getUserName())
+            .thenReturn(USER_1);
+        when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(MetaData.FetchGroup.class)))
+            .thenReturn(metaData);
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
 
         listRightsRequest = new ListRightsRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1);
 
@@ -119,106 +113,80 @@ public class ListRightsProcessorTest {
     
     @Test
     public void testNoListRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
+        subject.doProcess(listRightsRequest, responder, imapSession);
 
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(listRightsRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testNoAdminRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        subject.doProcess(listRightsRequest, responder, imapSession);
 
-        subject.doProcess(listRightsRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testInexistentMailboxName() throws Exception {
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.throwException(new MailboxNotFoundException(path)));
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenThrow(new MailboxNotFoundException(""));
 
-        mockery.checking(expectations);
+        subject.doProcess(listRightsRequest, responder, imapSession);
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-        subject.doProcess(listRightsRequest, responderMock, imapSessionStub);
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
 
     
     @Test
     public void testListRights() throws MailboxException {
-        final MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
-
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
+        MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(true);
+        when(metaData.getACL()).thenReturn(acl);
         
-        expectations.allowing(mailboxManagerStub).listRigths(expectations.with(path), expectations.with(Expectations.equal(user1Key)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(listRights));
+        when(mailboxManager.listRigths(path, user1Key, mailboxSession))
+            .thenReturn(listRights);
 
-        expectations.allowing(metaDataStub).getACL();
-        expectations.will(Expectations.returnValue(acl));
 
-        mockery.checking(expectations);
+        subject.doProcess(listRightsRequest, responder, imapSession);
 
-        final ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, USER_1, listRights);
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(equal(response)));
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.OK)));
-            }
-        });
+        ListRightsResponse response = new ListRightsResponse(MAILBOX_NAME, USER_1, listRights);
+        verify(responder, times(2)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-        subject.doProcess(listRightsRequest, responderMock, imapSessionStub);
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(2);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .isEqualTo(response);
+        assertThat(argumentCaptor.getAllValues().get(1))
+            .matches(StatusResponseTypeMatcher.OK_RESPONSE_MATCHER::matches);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8ffa76db/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
index 942cc69..0e5096e 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetACLProcessorTest.java
@@ -19,11 +19,20 @@
 
 package org.apache.james.imap.processor;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.message.response.StatusResponse;
+import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.api.process.ImapSession;
@@ -43,11 +52,9 @@ import org.apache.james.mailbox.model.MailboxACL.EntryKey;
 import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentCaptor;
 
 /**
  * SetACLProcessor Test.
@@ -61,59 +68,46 @@ public class SetACLProcessorTest {
     private static final String SET_RIGHTS = "aw";
     private static final String UNSUPPORTED_RIGHT = "W";
 
-    ImapSession imapSessionStub;
-    MailboxManager mailboxManagerStub;
-    MailboxSession mailboxSessionStub;
-    MessageManager messageManagerStub;
-    MetaData metaDataStub;
-    Mockery mockery = new JUnit4Mockery();
-    SetACLRequest replaceACLRequest;
-    UnpooledStatusResponseFactory statusResponseFactory;
-    SetACLProcessor subject;
-    User user1Stub;
-    EntryKey user1Key;
-    Rfc4314Rights setRights;
-    MailboxPath path;
-
-    private Expectations prepareRightsExpectations() throws MailboxException {
-        return new Expectations() {
-            {
-
-                allowing(imapSessionStub).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY);
-                will(returnValue(mailboxSessionStub));
-
-                allowing(imapSessionStub).getState();
-                will(returnValue(ImapSessionState.AUTHENTICATED));
-
-                allowing(mailboxSessionStub).getUser();
-                will(returnValue(user1Stub));
-
-                allowing(user1Stub).getUserName();
-                will(returnValue(USER_1));
-
-                allowing(mailboxManagerStub).startProcessingRequest(with(same(mailboxSessionStub)));
-                allowing(mailboxManagerStub).endProcessingRequest(with(same(mailboxSessionStub)));
-
-                allowing(messageManagerStub).getMetaData(with(any(Boolean.class)), with(same(mailboxSessionStub)), with(any(FetchGroup.class)));
-                will(returnValue(metaDataStub));
-
-            }
-        };
-    }
+    private ImapSession imapSession;
+    private MailboxManager mailboxManager;
+    private MailboxSession mailboxSession;
+    private SetACLProcessor subject;
+    private EntryKey user1Key;
+    private MailboxPath path;
+    private Responder responder;
+    private ArgumentCaptor<ImapResponseMessage> argumentCaptor;
+    private SetACLRequest replaceAclRequest;
+    private Rfc4314Rights setRights;
 
     @Before
     public void setUp() throws Exception {
         path = MailboxPath.forUser(USER_1, MAILBOX_NAME);
-        statusResponseFactory = new UnpooledStatusResponseFactory();
-        mailboxManagerStub = mockery.mock(MailboxManager.class);
-        subject = new SetACLProcessor(mockery.mock(ImapProcessor.class), mailboxManagerStub, statusResponseFactory, new NoopMetricFactory());
-        imapSessionStub = mockery.mock(ImapSession.class);
-        mailboxSessionStub = mockery.mock(MailboxSession.class);
-        user1Stub = mockery.mock(User.class);
-        messageManagerStub = mockery.mock(MessageManager.class);
-        metaDataStub = mockery.mock(MetaData.class);
-
-        replaceACLRequest = new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, SET_RIGHTS);
+        UnpooledStatusResponseFactory statusResponseFactory = new UnpooledStatusResponseFactory();
+        mailboxManager = mock(MailboxManager.class);
+        subject = new SetACLProcessor(mock(ImapProcessor.class), mailboxManager, statusResponseFactory, new NoopMetricFactory());
+        imapSession = mock(ImapSession.class);
+        mailboxSession = mock(MailboxSession.class);
+        User user1 = mock(User.class);
+        MessageManager messageManager = mock(MessageManager.class);
+        MetaData metaData = mock(MetaData.class);
+        responder = mock(Responder.class);
+
+        argumentCaptor = ArgumentCaptor.forClass(ImapResponseMessage.class);
+
+        when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))
+            .thenReturn(mailboxSession);
+        when(imapSession.getState())
+            .thenReturn(ImapSessionState.AUTHENTICATED);
+        when(mailboxSession.getUser())
+            .thenReturn(user1);
+        when(user1.getUserName())
+            .thenReturn(USER_1);
+        when(messageManager.getMetaData(anyBoolean(), any(MailboxSession.class), any(FetchGroup.class)))
+            .thenReturn(metaData);
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
+
+        replaceAclRequest = new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, SET_RIGHTS);
 
         user1Key = EntryKey.deserialize(USER_1);
         setRights = Rfc4314Rights.fromSerializedRfc4314Rights(SET_RIGHTS);
@@ -121,132 +115,61 @@ public class SetACLProcessorTest {
     
     @Test
     public void testUnsupportedRight() throws Exception {
+        SetACLRequest setACLRequest = new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, UNSUPPORTED_RIGHT);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.BAD)));
-            }
-        });
-
-        subject.doProcess(new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, UNSUPPORTED_RIGHT), responderMock, imapSessionStub);
-
-    }
-
-    @Test
-    public void testNoListRight() throws Exception {
-
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(false);
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        subject.doProcess(setACLRequest, responder, imapSession);
 
-        subject.doProcess(replaceACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.BAD_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testNoAdminRight() throws Exception {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(false);
 
-        Expectations expectations = prepareRightsExpectations();
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
+        subject.doProcess(replaceAclRequest, responder, imapSession);
 
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(false));
-
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
-
-        subject.doProcess(replaceACLRequest, responderMock, imapSessionStub);
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
     
     @Test
     public void testInexistentMailboxName() throws Exception {
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.throwException(new MailboxNotFoundException(path)));
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenThrow(new MailboxNotFoundException(""));
 
-        mockery.checking(expectations);
+        subject.doProcess(replaceAclRequest, responder, imapSession);
 
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.NO)));
-            }
-        });
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
 
-        subject.doProcess(replaceACLRequest, responderMock, imapSessionStub);
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.NO_RESPONSE_MATCHER::matches);
     }
 
     @Test
     public void testAddRights() throws Exception {
         testOp("+", EditMode.ADD);
     }
-    
-    private void testOp(String prefix, EditMode editMode) throws MailboxException {
-        final MailboxACL acl = MailboxACL.OWNER_FULL_ACL;
 
-        Expectations expectations = prepareRightsExpectations();
-        
-        expectations.allowing(mailboxManagerStub).getMailbox(expectations.with(Expectations.any(MailboxPath.class)), expectations.with(Expectations.any(MailboxSession.class)));
-        expectations.will(Expectations.returnValue(messageManagerStub));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Lookup)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).hasRight(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.Right.Administer)), expectations.with(Expectations.same(mailboxSessionStub)));
-        expectations.will(Expectations.returnValue(true));
-        
-        expectations.allowing(mailboxManagerStub).applyRightsCommand(expectations.with(path), expectations.with(Expectations.equal(MailboxACL.command().key(user1Key).mode(editMode).rights(setRights).build())), expectations.with(mailboxSessionStub));
-
-        expectations.allowing(metaDataStub).getACL();
-        expectations.will(Expectations.returnValue(acl));
-
-        mockery.checking(expectations);
-
-        final Responder responderMock = mockery.mock(Responder.class);
-        mockery.checking(new Expectations() {
-            {
-                oneOf(responderMock).respond(with(new StatusResponseTypeMatcher(StatusResponse.Type.OK)));
-            }
-        });
-
-        SetACLRequest r = new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, prefix + SET_RIGHTS);
-        subject.doProcess(r, responderMock, imapSessionStub);
-    }
-    
     @Test
     public void testRemoveRights() throws Exception {
         testOp("-", EditMode.REMOVE);
@@ -256,5 +179,28 @@ public class SetACLProcessorTest {
     public void testReplaceRights() throws Exception {
         testOp("", EditMode.REPLACE);
     }
+    
+    private void testOp(String prefix, EditMode editMode) throws MailboxException {
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Lookup, mailboxSession))
+            .thenReturn(true);
+        when(mailboxManager.hasRight(path, MailboxACL.Right.Administer, mailboxSession))
+            .thenReturn(true);
+
+
+        SetACLRequest r = new SetACLRequest("TAG", ImapCommand.anyStateCommand("Name"), MAILBOX_NAME, USER_1, prefix + SET_RIGHTS);
+        subject.doProcess(r, responder, imapSession);
+
+        verify(mailboxManager).applyRightsCommand(path,
+            MailboxACL.command().key(user1Key).rights(setRights).mode(editMode).build(),
+            mailboxSession);
+
+        verify(responder, times(1)).respond(argumentCaptor.capture());
+        verifyNoMoreInteractions(responder);
+
+        assertThat(argumentCaptor.getAllValues())
+            .hasSize(1);
+        assertThat(argumentCaptor.getAllValues().get(0))
+            .matches(StatusResponseTypeMatcher.OK_RESPONSE_MATCHER::matches);
+    }
 
 }


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


[02/15] james-project git commit: PROTOCOLS-117 General fixes: Check that subscribed folder are well returned as selectable by LSUB when using %

Posted by ad...@apache.org.
PROTOCOLS-117 General fixes: Check that subscribed folder are well returned as selectable by LSUB when using %

That was not blatent...


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

Branch: refs/heads/master
Commit: 1cdb6b7ae17fa2d8df34612842b681edcb2950a2
Parents: f79e6f1
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 16:14:28 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 09:34:03 2017 +0700

----------------------------------------------------------------------
 .../resources/org/apache/james/imap/scripts/Subscribe.test     | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1cdb6b7a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test
index 86e9e6e..9b8b9b8 100644
--- a/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test
+++ b/mpt/impl/imap-mailbox/core/src/main/resources/org/apache/james/imap/scripts/Subscribe.test
@@ -74,6 +74,12 @@ S: \* LSUB \(\\Noselect\) \"\.\" \"subscribetest1\"
 }
 S: b01 OK LSUB completed.
 
+C: b03 LSUB "" "subscribetest.%"
+SUB {
+S: \* LSUB \(\) \"\.\" \"subscribetest\.subfolder\"
+}
+S: b03 OK LSUB completed.
+
 
 # Attempt to unsubscribe from a mailbox that isn't subscribed
 C: a10 UNSUBSCRIBE subscribetest1


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


[15/15] james-project git commit: Merge remote-tracking branch 'btellier/MAILBOX-319'

Posted by ad...@apache.org.
Merge remote-tracking branch 'btellier/MAILBOX-319'


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

Branch: refs/heads/master
Commit: f1d6f12f6bc7ec9985b76f3b4924f9d18dc0c784
Parents: e4b2b37 6500ba8
Author: Antoine Duprat <ad...@linagora.com>
Authored: Fri Nov 3 13:26:42 2017 +0100
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Fri Nov 3 13:26:42 2017 +0100

----------------------------------------------------------------------
 .../maildir/mail/MaildirMessageMapper.java      |  2 +-
 .../maildir/mail/model/MaildirMessage.java      |  3 ++-
 .../mailbox/store/mail/model/FlagsFactory.java  |  6 +++++-
 .../mail/model/impl/SimpleMailboxMessage.java   | 20 +++++++++++++++-----
 .../store/mail/model/FlagsFactoryTest.java      |  9 +++++++++
 5 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



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


[09/15] james-project git commit: PROTOCOLS-117 General fixes: Most MPT tests do not need Guice

Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRename.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRename.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRename.java
index c07044b..f11d84b 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRename.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryRename.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Rename;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryRename extends Rename {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearch.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearch.java
index c11ef24..bb3bd73 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearch.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Search;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemorySearch extends Search {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurity.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurity.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurity.java
index e251c0d..aba915e 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurity.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySecurity.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Security;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemorySecurity extends Security {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelect.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelect.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelect.java
index bd3eed2..c24d1b8 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelect.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelect.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Select;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemorySelect extends Select {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInbox.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInbox.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInbox.java
index 652ac55..f010bee 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInbox.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedInbox.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemorySelectedInbox extends SelectedInbox {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedState.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedState.java
index 88d55cb..a4decb8 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedState.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemorySelectedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemorySelectedState extends SelectedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearch.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearch.java
index 1398151..4345668 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearch.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryUidSearch extends UidSearch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndex.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndex.java
index 0b3647f..f8da995 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupport.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupport.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupport.java
index 6382bc9..e0fdbaf 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupport.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryUserFlagsSupport.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryUserFlagsSupport extends UserFlagsSupport {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlain.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlain.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlain.java
index 27b7227..d6cd69b 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatePlain.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaAuthenticatePlain extends AuthenticatePlain {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedState.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedState.java
index b20e3db..ce1ecf9 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaAuthenticatedState extends AuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessions.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessions.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessions.java
index f815ccc..85f502b 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessions.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaConcurrentSessions.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaConcurrentSessions extends ConcurrentSessions {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstore.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstore.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstore.java
index ea0af5d..594a801 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstore.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCondstore.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Condstore;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaCondstore extends Condstore {
 
     private JamesImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(JamesImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopy.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopy.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopy.java
index 2ee21ad..eaac933 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopy.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaCopy.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Copy;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaCopy extends Copy {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEvents.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEvents.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEvents.java
index 9debc12..1c1d92d 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEvents.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaEvents.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Events;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaEvents extends Events {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpunge.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpunge.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpunge.java
index 6074709..d412103 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpunge.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaExpunge.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Expunge;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaExpunge extends Expunge {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetch.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetch.java
index 16d2015..96d9235 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetch.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Fetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaFetch extends Fetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySection.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySection.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySection.java
index 80a2982..0573a74 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySection.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodySection.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaFetchBodySection extends FetchBodySection {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructure.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructure.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructure.java
index 467e6cb..f1b0e30 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructure.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchBodyStructure.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaFetchBodyStructure extends FetchBodyStructure {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeaders.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeaders.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeaders.java
index ce3d867..74e0673 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeaders.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaFetchHeaders.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaFetchHeaders extends FetchHeaders {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListing.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListing.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListing.java
index 23b20c2..2f3bf30 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListing.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaListing.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaListing extends Listing {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotation.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotation.java
index e638697..14cea52 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotation.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxAnnotation.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaMailboxAnnotation extends MailboxAnnotation {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxTestModule.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxTestModule.java
deleted file mode 100644
index 3c2d0f4..0000000
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxTestModule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.jpa;
-
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.host.JamesImapHostSystem;
-import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-public class JpaMailboxTestModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(HostSystem.class).to(ImapHostSystem.class);
-        bind(ImapHostSystem.class).to(JamesImapHostSystem.class);
-    }
-
-    @Provides
-    @Singleton
-    public JamesImapHostSystem provideImapHostSystem() throws Exception {
-        return JPAHostSystem.build();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameError.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameError.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameError.java
index 9bf4ce9..b457193 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameError.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMailboxWithLongNameError.java
@@ -20,14 +20,12 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxWithLongNameError;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 @Ignore("MAILBOX-300 JPA should fail gracefully when too long mailbox name")
 public class JpaMailboxWithLongNameError extends MailboxWithLongNameError {
 
@@ -35,8 +33,7 @@ public class JpaMailboxWithLongNameError extends MailboxWithLongNameError {
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMove.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMove.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMove.java
index 044f70a..fef6ad7 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMove.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaMove.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaMove extends Move {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedState.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedState.java
index e02e440..49d613e 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaNonAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaNonAuthenticatedState extends NonAuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetch.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetch.java
index 2e71729..0166c04 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetch.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaPartialFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaPartialFetch extends PartialFetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java
index a942095..217baa9 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaQuotaTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaQuotaTest extends QuotaTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRename.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRename.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRename.java
index 4000b20..bb39b3a 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRename.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaRename.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Rename;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaRename extends Rename {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearch.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearch.java
index 11cc901..7fa3fdc 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearch.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Search;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaSearch extends Search {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurity.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurity.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurity.java
index 6a1c07a..0216bf8 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurity.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSecurity.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Security;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaSecurity extends Security {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelect.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelect.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelect.java
index 9b01128..5cdb7a1 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelect.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelect.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Select;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaSelect extends Select {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInbox.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInbox.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInbox.java
index 9766626..7cbc9c1 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInbox.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedInbox.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaSelectedInbox extends SelectedInbox {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedState.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedState.java
index 1613068..0875ba5 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedState.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaSelectedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaSelectedState extends SelectedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearch.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearch.java
index 463ca8c..5625068 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearch.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaUidSearch extends UidSearch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndex.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndex.java
index 1a7ed96..7a8823d 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupport.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupport.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupport.java
index d546b88..75ec5d4 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupport.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/JpaUserFlagsSupport.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.jpa;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.jpa.host.JPAHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class JpaUserFlagsSupport extends UserFlagsSupport {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new JpaMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = JPAHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlain.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlain.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlain.java
index 08befdb..9140ec7 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatePlain.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneAuthenticatePlain extends AuthenticatePlain {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedState.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedState.java
index 8c64be5..687d493 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneAuthenticatedState extends AuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessions.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessions.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessions.java
index 13d70af..ef106d6 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessions.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneConcurrentSessions.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneConcurrentSessions extends ConcurrentSessions {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstore.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstore.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstore.java
index bbbb862..783a19d 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstore.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCondstore.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Condstore;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneCondstore extends Condstore {
 
     private JamesImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(JamesImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopy.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopy.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopy.java
index 824a507..c1afef3 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopy.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneCopy.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Copy;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneCopy extends Copy {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEvents.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEvents.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEvents.java
index 3acde0f..9f33405 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEvents.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneEvents.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Events;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneEvents extends Events {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpunge.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpunge.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpunge.java
index b775616..602e89a 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpunge.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneExpunge.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Expunge;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneExpunge extends Expunge {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetch.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetch.java
index 2e8f2af..d59ca48 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetch.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Fetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneFetch extends Fetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySection.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySection.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySection.java
index bc792ec..8ab91ab 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySection.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodySection.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneFetchBodySection extends FetchBodySection {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructure.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructure.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructure.java
index ac1c0bb..3c4dea9 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructure.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchBodyStructure.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneFetchBodyStructure extends FetchBodyStructure {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeaders.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeaders.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeaders.java
index 29a6a63..73f647c 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeaders.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneFetchHeaders.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneFetchHeaders extends FetchHeaders {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListing.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListing.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListing.java
index d551d5c..eaa265b 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListing.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneListing.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneListing extends Listing {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotation.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotation.java
index 6417687..acf98ff 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotation.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxAnnotation.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneMailboxAnnotation extends MailboxAnnotation {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameError.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameError.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameError.java
index 01d4816..d4bab5d 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameError.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMailboxWithLongNameError.java
@@ -20,14 +20,12 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxWithLongNameError;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 @Ignore("MAILBOX-300 JPA should fail gracefully when too long mailbox name")
 public class LuceneMailboxWithLongNameError extends MailboxWithLongNameError {
 
@@ -35,8 +33,7 @@ public class LuceneMailboxWithLongNameError extends MailboxWithLongNameError {
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMove.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMove.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMove.java
index 37172ba..0ee9ed6 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMove.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneMove.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneMove extends Move {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedState.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedState.java
index c5ea83a..8844b43 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneNonAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneNonAuthenticatedState extends NonAuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetch.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetch.java
index c669794..fc1fc52 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetch.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LucenePartialFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LucenePartialFetch extends PartialFetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java
index 393e73d..7539692 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneQuotaTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneQuotaTest extends QuotaTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRename.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRename.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRename.java
index d19e85c..fd99bfb 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRename.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneRename.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Rename;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneRename extends Rename {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearch.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearch.java
index ea12d30..5ba61db 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearch.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Search;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneSearch extends Search {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }


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


[08/15] james-project git commit: PROTOCOLS-117 General fixes: Most MPT tests do not need Guice

Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
deleted file mode 100644
index 4f54114..0000000
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSearchMailboxTestModule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.lucenesearch;
-
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.host.JamesImapHostSystem;
-import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-public class LuceneSearchMailboxTestModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        bind(HostSystem.class).to(JamesImapHostSystem.class);
-        bind(ImapHostSystem.class).to(JamesImapHostSystem.class);
-    }
-
-    @Provides
-    @Singleton
-    public JamesImapHostSystem provideImapHostSystem() throws Exception {
-        return new LuceneSearchHostSystem();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurity.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurity.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurity.java
index 392c4d5..a12c78d 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurity.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSecurity.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Security;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneSecurity extends Security {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelect.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelect.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelect.java
index 1f2028c..695474c 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelect.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelect.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Select;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneSelect extends Select {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInbox.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInbox.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInbox.java
index 561835e..79d6746 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInbox.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedInbox.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneSelectedInbox extends SelectedInbox {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedState.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedState.java
index a2a4724..7e73c91 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedState.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneSelectedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneSelectedState extends SelectedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearch.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearch.java
index 9c5087b..e18ab9c 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearch.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneUidSearch extends UidSearch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndex.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndex.java
index 61e89f1..d2d1d3c 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupport.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupport.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupport.java
index 93b9492..ad9470c 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupport.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/LuceneUserFlagsSupport.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.lucenesearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.lucenesearch.host.LuceneSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class LuceneUserFlagsSupport extends UserFlagsSupport {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new LuceneSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new LuceneSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatePlain.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatePlain.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatePlain.java
index 1c4880b..836be6e 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatePlain.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirAuthenticatePlain extends AuthenticatePlain {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatedState.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatedState.java
index a004f20..8ddc18a 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirAuthenticatedState extends AuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirConcurrentSessions.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirConcurrentSessions.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirConcurrentSessions.java
index 46da204..b4d7c16 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirConcurrentSessions.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirConcurrentSessions.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirConcurrentSessions extends ConcurrentSessions {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCondstore.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCondstore.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCondstore.java
index 29b6e82..46e06c9 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCondstore.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCondstore.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Condstore;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirCondstore extends Condstore {
 
     private JamesImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(JamesImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCopy.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCopy.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCopy.java
index 3393d82..f6e140c 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCopy.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirCopy.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Copy;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirCopy extends Copy {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirEvents.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirEvents.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirEvents.java
index 1d74bed..d8784dd 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirEvents.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirEvents.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Events;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirEvents extends Events {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirExpunge.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirExpunge.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirExpunge.java
index cdfe2ae..86b22a9 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirExpunge.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirExpunge.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Expunge;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirExpunge extends Expunge {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetch.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetch.java
index e7a787a..5fb37f0 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetch.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Fetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirFetch extends Fetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodySection.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodySection.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodySection.java
index a73524a..8c505c0 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodySection.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodySection.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirFetchBodySection extends FetchBodySection {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodyStructure.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodyStructure.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodyStructure.java
index 46b2027..2d07b73 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodyStructure.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchBodyStructure.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirFetchBodyStructure extends FetchBodyStructure {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchHeaders.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchHeaders.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchHeaders.java
index d5e7419..0209729 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchHeaders.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirFetchHeaders.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirFetchHeaders extends FetchHeaders {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirListing.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirListing.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirListing.java
index fce3fbc..00bbd1d 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirListing.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirListing.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirListing extends Listing {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxAnnotation.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxAnnotation.java
index b14e62b..0398fd7 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxAnnotation.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxAnnotation.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirMailboxAnnotation extends MailboxAnnotation {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxTestModule.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxTestModule.java
deleted file mode 100644
index 33b7768..0000000
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxTestModule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.maildir;
-
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.host.JamesImapHostSystem;
-import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-public class MaildirMailboxTestModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(HostSystem.class).to(JamesImapHostSystem.class);
-        bind(ImapHostSystem.class).to(JamesImapHostSystem.class);
-    }
-
-    @Provides
-    @Singleton
-    public JamesImapHostSystem provideImapHostSystem() throws Exception {
-        return MaildirHostSystem.build();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxWithLongNameError.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxWithLongNameError.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxWithLongNameError.java
index f20e6a9..9355b75 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxWithLongNameError.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMailboxWithLongNameError.java
@@ -20,14 +20,12 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxWithLongNameError;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 @Ignore("MAILBOX-299 Maildir should fail gracefully when too long mailbox name")
 public class MaildirMailboxWithLongNameError extends MailboxWithLongNameError {
 
@@ -35,8 +33,7 @@ public class MaildirMailboxWithLongNameError extends MailboxWithLongNameError {
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMove.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMove.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMove.java
index a068b90..823aed4 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMove.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirMove.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirMove extends Move {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirNonAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirNonAuthenticatedState.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirNonAuthenticatedState.java
index 1956d13..cb67c08 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirNonAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirNonAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirNonAuthenticatedState extends NonAuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirPartialFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirPartialFetch.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirPartialFetch.java
index a784a8c..58082c6 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirPartialFetch.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirPartialFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirPartialFetch extends PartialFetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirQuotaTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirQuotaTest.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirQuotaTest.java
index baa1cc9..c69718b 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirQuotaTest.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirQuotaTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirQuotaTest extends QuotaTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirRename.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirRename.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirRename.java
index 018b369..e631cf5 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirRename.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirRename.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Rename;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirRename extends Rename {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSearch.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSearch.java
index 51e17c3..ea0e61d 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSearch.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Search;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirSearch extends Search {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSecurity.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSecurity.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSecurity.java
index 7bf4fe9..7a06c07 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSecurity.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSecurity.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Security;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirSecurity extends Security {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelect.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelect.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelect.java
index cdda4a9..9c0bc7b 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelect.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelect.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Select;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirSelect extends Select {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedInbox.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedInbox.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedInbox.java
index 9f66709..46c655b 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedInbox.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedInbox.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirSelectedInbox extends SelectedInbox {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedState.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedState.java
index b6652bc..4021469 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedState.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirSelectedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirSelectedState extends SelectedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearch.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearch.java
index 6e0435a..3dd23de 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearch.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirUidSearch extends UidSearch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearchOnIndex.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearchOnIndex.java
index bd97389..fd26238 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUserFlagsSupport.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUserFlagsSupport.java b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUserFlagsSupport.java
index f4afb13..01b567a 100644
--- a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUserFlagsSupport.java
+++ b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/MaildirUserFlagsSupport.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.maildir;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.maildir.host.MaildirHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class MaildirUserFlagsSupport extends UserFlagsSupport {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new MaildirMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new MaildirHostSystem();
         system.beforeTest();
         super.setUp();
     }


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


[13/15] james-project git commit: PROTOCOLS-117 Bonus: Functional style in MailboxPath constructor

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Functional style in MailboxPath constructor


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

Branch: refs/heads/master
Commit: 28b75a051290aa9d2fd80d1fe8f1efd3b2c3bdbb
Parents: deefc33
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 09:37:56 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/mailbox/model/MailboxPath.java    | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/28b75a05/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
index 1da70bc..1ba8d67 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxPath.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.model;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 import org.apache.james.mailbox.MailboxSession;
 
@@ -77,11 +78,9 @@ public class MailboxPath {
     private String name;
     
     public MailboxPath(String namespace, String user, String name) {
-        if (namespace == null || namespace.equals("")) {
-            this.namespace = MailboxConstants.USER_NAMESPACE;
-        } else {
-            this.namespace = namespace;
-        }
+        this.namespace = Optional.ofNullable(namespace)
+            .filter(s -> !s.isEmpty())
+            .orElse(MailboxConstants.USER_NAMESPACE);
         this.user = user;
         this.name = name;
     }


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


[06/15] james-project git commit: PROTOCOLS-117 Bonus: Rely on mocks in MailboxEventAnalyserTest

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Rely on mocks in MailboxEventAnalyserTest

This avoid duplicating the entire mailbox-api classes, and this test is only impacted by the changes in methods it uses, not ANY mailbox-api change.


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

Branch: refs/heads/master
Commit: cc5b9f8cbfc04cefbccf38e4064dd55e673feba0
Parents: 0824d8f
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 13:42:04 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../base/MailboxEventAnalyserTest.java          | 730 +++----------------
 1 file changed, 105 insertions(+), 625 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/cc5b9f8c/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index 45e670b..c1f66b8 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -19,616 +19,127 @@
 
 package org.apache.james.imap.processor.base;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collection;
-import java.util.Date;
-import java.util.EnumSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 import javax.mail.Flags;
 
-import org.apache.commons.lang.NotImplementedException;
+import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.process.ImapLineHandler;
 import org.apache.james.imap.api.process.ImapSession;
-import org.apache.james.imap.api.process.SelectedMailbox;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.ComposedMessageId;
-import org.apache.james.mailbox.model.Content;
-import org.apache.james.mailbox.model.Headers;
-import org.apache.james.mailbox.model.MailboxACL;
-import org.apache.james.mailbox.model.MailboxACL.ACLCommand;
-import org.apache.james.mailbox.model.MailboxACL.EntryKey;
-import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
-import org.apache.james.mailbox.model.MailboxACL.Right;
-import org.apache.james.mailbox.model.MailboxAnnotation;
-import org.apache.james.mailbox.model.MailboxAnnotationKey;
-import org.apache.james.mailbox.model.MailboxCounters;
+import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.MessageAttachment;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResult.FetchGroup;
 import org.apache.james.mailbox.model.MessageResultIterator;
-import org.apache.james.mailbox.model.MimeDescriptor;
-import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
-import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
-import org.apache.james.mailbox.model.search.MailboxQuery;
-import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
+import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
 
 public class MailboxEventAnalyserTest {
+    public static class SingleMessageResultIterator implements MessageResultIterator {
+        private final MessageResult messageResult;
+        private boolean done;
 
-    private static final long BASE_SESSION_ID = 99;
-    public static final MessageUid MESSAGE_UID = MessageUid.of(1);
-
-
-    private MailboxPath mailboxPath = new MailboxPath("namespace", "user", "name");
-    private final MailboxManager mockManager = new MailboxManager() {
-
-        @Override
-        public boolean hasRight(MailboxId mailboxId, Right right, MailboxSession session) throws MailboxException {
-            return false;
-        }
-
-        @Override
-        public EnumSet<MailboxCapabilities> getSupportedMailboxCapabilities() {
-            return EnumSet.noneOf(MailboxCapabilities.class);
-        }
-
-        @Override
-        public EnumSet<MessageCapabilities> getSupportedMessageCapabilities() {
-            return EnumSet.noneOf(MessageCapabilities.class);
-        }
-        
-        @Override
-        public EnumSet<SearchCapabilities> getSupportedSearchCapabilities() {
-            return EnumSet.noneOf(SearchCapabilities.class);
-        }
-        
-        public boolean hasCapability(MailboxCapabilities capability) {
-            return false;
-        }
-
-        public void removeListener(MailboxPath mailboxPath, MailboxListener listner, MailboxSession session) throws MailboxException {
-            
-        }
-        
-        
-        public void removeGlobalListener(MailboxListener listner, MailboxSession session) throws MailboxException {
-            
-        }
-        
-        
-        public void addListener(MailboxPath mailboxPath, MailboxListener listener, MailboxSession session) throws MailboxException {
-            
-        }
-        
-        
-        public void addGlobalListener(MailboxListener listener, MailboxSession session) throws MailboxException {
-            
-        }
-        
-        
-        public void startProcessingRequest(MailboxSession session) {
-            
-        }
-        
-        
-        public void endProcessingRequest(MailboxSession session) {
-            
-        }
-        
-        
-        public List<MailboxMetaData> search(MailboxQuery expression, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-
-        }
-        
-        
-        public void renameMailbox(MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-            
-        }
-        
-        
-        public boolean mailboxExists(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-
-        }
-        
-        
-        public void logout(MailboxSession session, boolean force) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-            
-        }
-        
-        
-        public MailboxSession login(String userid, String passwd) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-
-        }
-        
-        
-        public List<MailboxPath> list(MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-        
-        
-        public MessageManager getMailbox(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
-            return new MessageManager() {
-
-                public long getMessageCount(MailboxSession mailboxSession) throws MailboxException {
-                    return 1;
-                }
-
-                @Override
-                public MailboxCounters getMailboxCounters(MailboxSession mailboxSession) throws MailboxException {
-                    throw new UnsupportedOperationException("Not implemented");
-                }
-
-                public boolean isWriteable(MailboxSession session) {
-                    return false;
-                }
-
-                public boolean isModSeqPermanent(MailboxSession session) {
-                    return false;
-                }
-
-                @Override
-                public Iterator<MessageUid> search(SearchQuery searchQuery, MailboxSession mailboxSession) throws MailboxException {
-                    return ImmutableList.of(MESSAGE_UID).iterator();
-                }
-
-                @Override
-                public Iterator<MessageUid> expunge(MessageRange set, MailboxSession mailboxSession) throws MailboxException {
-                    throw new UnsupportedOperationException("Not implemented");
-                }
-
-                @Override
-                public Map<MessageUid, Flags> setFlags(Flags flags, FlagsUpdateMode mode, MessageRange set, MailboxSession mailboxSession) throws MailboxException {
-                    throw new UnsupportedOperationException("Not implemented");
-                }
-                
-                public ComposedMessageId appendMessage(InputStream msgIn, Date internalDate, MailboxSession mailboxSession, boolean isRecent, Flags flags) throws MailboxException {
-                    throw new UnsupportedOperationException("Not implemented");
-                }
-
-                public MessageResultIterator getMessages(MessageRange set, FetchGroup fetchGroup, MailboxSession mailboxSession) throws MailboxException {
-                    return new MessageResultIterator() {
-                        boolean done = false;
-                        
-                        public void remove() {
-                            throw new UnsupportedOperationException("Not implemented");
-                        }
-
-                        public MessageResult next() {
-                            done = true;
-                            return new MessageResult() {
-
-                                @Override
-                                public MailboxId getMailboxId() {
-                                    return TestId.of(36);
-                                }
-
-                                public int compareTo(MessageResult o) {
-                                    return 0;
-                                }
-
-                                @Override
-                                public MessageUid getUid() {
-                                    return MESSAGE_UID;
-                                }
-
-                                @Override
-                                public MessageId getMessageId() {
-                                    return new DefaultMessageId();
-                                };
-                                
-                                public long getModSeq() {
-                                    return 0;
-                                }
-                                
-                                public Flags getFlags() {
-                                    return new Flags();
-                                }
-
-                                public long getSize() {
-                                    return 0;
-                                }
-                                
-                                public Date getInternalDate() {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-
-                                public MimeDescriptor getMimeDescriptor() throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                                
-                                public Iterator<Header> iterateHeaders(MimePath path) throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                                
-                                public Iterator<Header> iterateMimeHeaders(MimePath path) throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                                
-                                public Content getFullContent() throws MailboxException, IOException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                                
-                                public Content getFullContent(MimePath path) throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-
-                                public Content getBody() throws MailboxException, IOException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-
-                                public Content getBody(MimePath path) throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-
-                                public Content getMimeBody(MimePath path) throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-
-                                public Headers getHeaders() throws MailboxException {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                                
-                                public List<MessageAttachment> getAttachments() {
-                                    throw new UnsupportedOperationException("Not implemented");
-                                }
-                            };
-                        }
-                        
-                        public boolean hasNext() {
-                            return !done;
-                        }
-
-                        public MailboxException getException() {
-                            return null;
-                        }
-                    };
-                }
-                
-                public MetaData getMetaData(boolean resetRecent, MailboxSession mailboxSession, org.apache.james.mailbox.MessageManager.MetaData.FetchGroup fetchGroup) throws MailboxException {
-                    throw new UnsupportedOperationException("Not implemented");
-                }
-                
-                public MailboxId getId() {
-                    return null;
-                }
-                
-                public MailboxPath getMailboxPath() {
-                    return null;
-                }
-
-                @Override
-                public Flags getApplicableFlags(MailboxSession session) throws MailboxException {
-                    return new Flags();
-                }
-            };
-        }
-
-        public MessageManager getMailbox(MailboxId mailboxId, MailboxSession session) throws MailboxException {
-            return getMailbox((MailboxPath)null, session);
-        }
-        
-        public char getDelimiter() {
-            return '.';
-        }
-
-        public void deleteMailbox(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-        
-        public MailboxSession createSystemSession(String userName) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-        
-        public Optional<MailboxId> createMailbox(MailboxPath mailboxPath, MailboxSession mailboxSession) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-        
-        public List<MessageRange> copyMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-
-        public java.util.List<MessageRange> copyMessages(MessageRange set, MailboxId from, MailboxId to, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-        
-        public List<MessageRange> moveMessages(MessageRange set, MailboxPath from, MailboxPath to, MailboxSession session) throws MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-
-        public boolean hasRight(MailboxPath mailboxPath, Right mailboxACLRight, MailboxSession mailboxSession) throws MailboxException {
-            throw new NotImplementedException("Not implemented");
-        }
-
-        public Rfc4314Rights myRights(MailboxPath mailboxPath, MailboxSession mailboxSession) throws MailboxException {
-            throw new NotImplementedException("Not implemented");
-        }
-
-        @Override
-        public Rfc4314Rights myRights(MailboxId mailboxId, MailboxSession session) throws MailboxException {
-            throw new NotImplementedException("Not implemented");
+        public SingleMessageResultIterator(MessageResult messageResult) {
+            this.messageResult = messageResult;
+            done = false;
         }
 
-        public Rfc4314Rights[] listRigths(MailboxPath mailboxPath, EntryKey mailboxACLEntryKey, MailboxSession mailboxSession) throws MailboxException {
+        public void remove() {
             throw new NotImplementedException("Not implemented");
         }
 
-        public void applyRightsCommand(MailboxPath mailboxPath,
-                                       ACLCommand mailboxACLCommand, MailboxSession session)
-                throws MailboxException {
-            throw new NotImplementedException("Not implemented");
+        public MessageResult next() {
+            done = true;
+            return messageResult;
         }
 
-        @Override
-        public void setRights(MailboxPath mailboxPath, MailboxACL mailboxACL, MailboxSession session) throws MailboxException {
-            throw new NotImplementedException("Not implemented");
+        public boolean hasNext() {
+            return !done;
         }
 
-        @Override
-        public void setRights(MailboxId mailboxId, MailboxACL mailboxACL, MailboxSession session) throws MailboxException {
+        public MailboxException getException() {
             throw new NotImplementedException("Not implemented");
         }
-
-        @Override
-        public List<MailboxAnnotation> getAllAnnotations(MailboxPath mailboxPath, MailboxSession session)
-                throws MailboxException {
-            return null;
-        }
-
-        @Override
-        public List<MailboxAnnotation> getAnnotationsByKeys(MailboxPath mailboxPath, MailboxSession session,
-                Set<MailboxAnnotationKey> keys) throws MailboxException {
-            return null;
-        }
-
-        @Override
-        public void updateAnnotations(MailboxPath mailboxPath, MailboxSession session,
-                List<MailboxAnnotation> mailboxAnnotations) throws MailboxException {
-        }
-
-        @Override
-        public List<MessageId> search(MultimailboxesSearchQuery expression, MailboxSession session, long limit) throws MailboxException {
-            return null;
-        }
-
-        @Override
-        public List<MailboxAnnotation> getAnnotationsByKeysWithOneDepth(MailboxPath mailboxPath, MailboxSession session,
-                Set<MailboxAnnotationKey> keys) throws MailboxException {
-            return null;
-        }
-
-        @Override
-        public List<MailboxAnnotation> getAnnotationsByKeysWithAllDepth(MailboxPath mailboxPath, MailboxSession session,
-                Set<MailboxAnnotationKey> keys) throws MailboxException {
-            return null;
-        }
-
-        @Override
-        public boolean hasChildren(MailboxPath mailboxPath, MailboxSession session) throws MailboxException {
-            return false;
-        }
-
-        @Override
-        public MailboxSession loginAsOtherUser(String adminUserId, String passwd, String realUserId) throws BadCredentialsException, MailboxException {
-            throw new UnsupportedOperationException("Not implemented");
-        }
-    };
-    
-    private final class MyMailboxSession implements MailboxSession {
-        private final long sessionId;
-
-        public MyMailboxSession(long sessionId) {
-            this.sessionId = sessionId;
-        }
-
-        /**
-         * @see org.apache.james.mailbox.mock.MockMailboxSession#getSessionId()
-         */
-        public long getSessionId() {
-            return sessionId;
-        }
-
-        public void close() {            
-        }
-
-        public Map<Object, Object> getAttributes() {
-            return null;
-        }
-
-        public String getOtherUsersSpace() {
-            return null;
-        }
-
-        public char getPathDelimiter() {
-            return 0;
-        }
-
-        public String getPersonalSpace() {
-            return null;
-        }
-
-        public Collection<String> getSharedSpaces() {
-            return null;
-        }
-
-        public User getUser() {
-            return null;
-        }
-
-        public boolean isOpen() {
-            return false;
-        }
-
-        public SessionType getType() {
-            return SessionType.System;
-        }
-        
-        
     }
-    
-    private class MyImapSession implements ImapSession{
-        private final MailboxSession mSession;
-
-        public MyImapSession(MailboxSession mSession) {
-            this.mSession = mSession;
-        }
-        
-        public boolean supportStartTLS() {
-            return false;
-        }
-        
-        public boolean startTLS() {
-            return false;
-        }
-        
-        public boolean startCompression() {
-            return false;
-        }
-        
-        public void setAttribute(String key, Object value) {            
-        }
-        
-        public void selected(SelectedMailbox mailbox) {
-            
-        }
-        
-        public void pushLineHandler(ImapLineHandler lineHandler) {
-            
-        }
-        
-        public void popLineHandler() {
-            
-        }
-        
-        public void logout() {
-            
-        }
-        
-        public boolean isCompressionSupported() {
-            return false;
-        }
-        
-        public ImapSessionState getState() {
-            return ImapSessionState.AUTHENTICATED;
-        }
-        
-        public SelectedMailbox getSelected() {
-            return null;
-        }
-
-        public Object getAttribute(String key) {
-            if (key.equals(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) {
-                return mSession;
-            }
-            return null;
-        }
-        
-        public void deselect() {
-            
-        }
-        
-        public void authenticated() {
-            
-        }
-
-        public boolean isPlainAuthDisallowed() {
-            return false;
-        }
-
-        public boolean isTLSActive() {
-            return false;
-        }
 
-        public boolean supportMultipleNamespaces() {
-            return false;
-        }
 
-        public boolean isCompressionActive() {
-            return false;
-        }
+    private static final MessageUid MESSAGE_UID = MessageUid.of(1);
+    private static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("user");
+    private static final MockMailboxSession OTHER_MAILBOX_SESSION = new MockMailboxSession("user");
+    private static final char PATH_DELIMITER = '.';
+    private static final MailboxPath MAILBOX_PATH = new MailboxPath("namespace", "user", "name");
+
+    private SelectedMailboxImpl testee;
+
+    @Before
+    public void setUp() throws MailboxException {
+        ImapSession imapSession = mock(ImapSession.class);
+        when(imapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))
+            .thenReturn(MAILBOX_SESSION);
+        when(imapSession.getState()).thenReturn(ImapSessionState.AUTHENTICATED);
+
+        MailboxManager mailboxManager = mock(MailboxManager.class);
+        MessageManager messageManager = mock(MessageManager.class);
+        when(mailboxManager.getDelimiter()).thenReturn(PATH_DELIMITER);
+        when(mailboxManager.getMailbox(any(MailboxId.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
+        when(mailboxManager.getMailbox(any(MailboxPath.class), any(MailboxSession.class)))
+            .thenReturn(messageManager);
+
+        MessageResult messageResult = mock(MessageResult.class);
+        when(messageResult.getMailboxId()).thenReturn(TestId.of(36));
+        when(messageResult.getUid()).thenReturn(MESSAGE_UID);
+
+        when(messageManager.getApplicableFlags(any()))
+            .thenReturn(new Flags());
+        when(messageManager.search(any(), any()))
+            .thenReturn(ImmutableList.of(MESSAGE_UID).iterator());
+        when(messageManager.getMessages(any(), any(), any()))
+            .thenReturn(new SingleMessageResultIterator(messageResult));
+
+        testee = new SelectedMailboxImpl(mailboxManager, imapSession, MAILBOX_PATH);
     }
 
-
     @Test
     public void testShouldBeNoSizeChangeOnOtherEvent() throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(0);
-        
-        MyImapSession imapsession = new MyImapSession(mSession);
-        
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-
-        final MailboxListener.Event event = new MailboxListener.Event(mSession, mailboxPath) {};
+        MailboxListener.Event event = new MailboxListener.Event(MAILBOX_SESSION, MAILBOX_PATH) {};
       
-        analyser.event(event);
-        assertFalse(analyser.isSizeChanged());
+        testee.event(event);
+
+        assertThat(testee.isSizeChanged()).isFalse();
     }
 
     @Test
     public void testShouldBeNoSizeChangeOnAdded() throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(0);
-        
-        MyImapSession imapsession = new MyImapSession(mSession);
-        
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-        
-        analyser.event(new FakeMailboxListenerAdded(mSession, ImmutableList.of(MessageUid.of(11)), mailboxPath));
-        assertTrue(analyser.isSizeChanged());
+        testee.event(new FakeMailboxListenerAdded(MAILBOX_SESSION, ImmutableList.of(MessageUid.of(11)), MAILBOX_PATH));
+        assertThat(testee.isSizeChanged()).isTrue();
     }
 
     @Test
     public void testShouldNoSizeChangeAfterReset() throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(99);
-        
-        MyImapSession imapsession = new MyImapSession(mSession);
-        
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-        
-        analyser.event(new FakeMailboxListenerAdded(mSession,  ImmutableList.of(MessageUid.of(11)), mailboxPath));
-        analyser.resetEvents();
-        assertFalse(analyser.isSizeChanged());
+        testee.event(new FakeMailboxListenerAdded(MAILBOX_SESSION, ImmutableList.of(MessageUid.of(11)), MAILBOX_PATH));
+        testee.resetEvents();
+
+        assertThat(testee.isSizeChanged()).isFalse();
     }
 
     @Test
     public void testShouldNotSetUidWhenNoSystemFlagChange() throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(11);
-        
-        MyImapSession imapsession = new MyImapSession(mSession);
-        
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-        
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession,
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(MAILBOX_SESSION,
             ImmutableList.of(MessageUid.of(90L)),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(MessageUid.of(90))
@@ -636,22 +147,17 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags())
                 .build()),
-            mailboxPath);
-        analyser.event(update);
-        assertNotNull(analyser.flagUpdateUids());
-        assertFalse(analyser.flagUpdateUids().iterator().hasNext());
+            MAILBOX_PATH);
+        testee.event(update);
+
+        assertThat(testee.flagUpdateUids()).isEmpty();
     }
 
     @Test
     public void testShouldSetUidWhenSystemFlagChange() throws Exception {
-        final MessageUid uid = MessageUid.of(900);
-        MyMailboxSession mSession = new MyMailboxSession(11);
-        
-        MyImapSession imapsession = new MyImapSession(mSession);
-        
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
+        MessageUid uid = MessageUid.of(900);
         
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(new MyMailboxSession(41),
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(OTHER_MAILBOX_SESSION,
             ImmutableList.of(uid),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(uid)
@@ -659,23 +165,18 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags(Flags.Flag.ANSWERED))
                 .build()),
-            mailboxPath);
-        analyser.event(update);
-        final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator();
-        assertNotNull(iterator);
-        assertTrue(iterator.hasNext());
-        assertEquals(uid, iterator.next());
-        assertFalse(iterator.hasNext());
+            MAILBOX_PATH);
+        testee.event(update);
+
+       assertThat(testee.flagUpdateUids().iterator()).containsExactly(uid);
     }
 
     @Test
     public void testShouldClearFlagUidsUponReset() throws Exception {
-        final MessageUid uid = MessageUid.of(900);
-        MyMailboxSession mSession = new MyMailboxSession(11);
-        MyImapSession imapsession = new MyImapSession(mSession);
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
+        MessageUid uid = MessageUid.of(900);
+        SelectedMailboxImpl analyser = this.testee;
         
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession,
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(MAILBOX_SESSION,
             ImmutableList.of(uid),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(uid)
@@ -683,24 +184,19 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags(Flags.Flag.ANSWERED))
                 .build()),
-            mailboxPath);
+            MAILBOX_PATH);
         analyser.event(update);
         analyser.event(update);
         analyser.deselect();
-        assertNotNull(analyser.flagUpdateUids());
-        assertFalse(analyser.flagUpdateUids().iterator().hasNext());
+
+        assertThat(analyser.flagUpdateUids()).isEmpty();
     }
 
     @Test
-    public void testShouldSetUidWhenSystemFlagChangeDifferentSessionInSilentMode()
-            throws Exception {
-        final MessageUid uid = MessageUid.of(900);
-        
-        MyMailboxSession mSession = new MyMailboxSession(11);
-        MyImapSession imapsession = new MyImapSession(mSession);
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-        
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(new MyMailboxSession(BASE_SESSION_ID),
+    public void testShouldSetUidWhenSystemFlagChangeDifferentSessionInSilentMode() throws Exception {
+        MessageUid uid = MessageUid.of(900);
+
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(OTHER_MAILBOX_SESSION,
             ImmutableList.of(uid),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(uid)
@@ -708,26 +204,17 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags(Flags.Flag.ANSWERED))
                 .build()),
-            mailboxPath);
-        analyser.event(update);
-        analyser.setSilentFlagChanges(true);
-        analyser.event(update);
-        final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator();
-        assertNotNull(iterator);
-        assertTrue(iterator.hasNext());
-        assertEquals(uid, iterator.next());
-        assertFalse(iterator.hasNext());
+            MAILBOX_PATH);
+        testee.event(update);
+        testee.setSilentFlagChanges(true);
+        testee.event(update);
+
+        assertThat(testee.flagUpdateUids().iterator()).containsExactly(uid);
     }
 
     @Test
-    public void testShouldNotSetUidWhenSystemFlagChangeSameSessionInSilentMode()
-            throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(BASE_SESSION_ID);
-        MyImapSession imapsession = new MyImapSession(mSession);
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-        
-        
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession,
+    public void testShouldNotSetUidWhenSystemFlagChangeSameSessionInSilentMode() throws Exception {
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(MAILBOX_SESSION,
             ImmutableList.of(MessageUid.of(345)),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(MessageUid.of(345))
@@ -735,23 +222,17 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags())
                 .build()),
-            mailboxPath);
-        analyser.event(update);
-        analyser.setSilentFlagChanges(true);
-        analyser.event(update);
-        final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator();
-        assertNotNull(iterator);
-        assertFalse(iterator.hasNext());
+            MAILBOX_PATH);
+        testee.event(update);
+        testee.setSilentFlagChanges(true);
+        testee.event(update);
+
+        assertThat(testee.flagUpdateUids().iterator()).isEmpty();
     }
 
     @Test
     public void testShouldNotSetUidWhenOnlyRecentFlagUpdated() throws Exception {
-        MyMailboxSession mSession = new MyMailboxSession(BASE_SESSION_ID);
-        MyImapSession imapsession = new MyImapSession(mSession);
-        SelectedMailboxImpl analyser = new SelectedMailboxImpl(mockManager, imapsession, mailboxPath);
-
-
-        final FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(mSession,
+        FakeMailboxListenerFlagsUpdate update = new FakeMailboxListenerFlagsUpdate(MAILBOX_SESSION,
             ImmutableList.of(MessageUid.of(886)),
             ImmutableList.of(UpdatedFlags.builder()
                 .uid(MessageUid.of(886))
@@ -759,10 +240,9 @@ public class MailboxEventAnalyserTest {
                 .oldFlags(new Flags())
                 .newFlags(new Flags(Flags.Flag.RECENT))
                 .build()),
-            mailboxPath);
-        analyser.event(update);
-        final Iterator<MessageUid> iterator = analyser.flagUpdateUids().iterator();
-        assertNotNull(iterator);
-        assertFalse(iterator.hasNext());
+            MAILBOX_PATH);
+        testee.event(update);
+
+        assertThat(testee.flagUpdateUids().iterator()).isEmpty();
     }
 }


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


[05/15] james-project git commit: PROTOCOLS-117 Bonus: Slightly simplify UserMailboxes webadmin routes

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Slightly simplify UserMailboxes webadmin routes


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

Branch: refs/heads/master
Commit: 0824d8f9dd7a5aee50e451a9300bbdc5e122789a
Parents: 28b75a0
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 09:03:06 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../james/webadmin/service/UserMailboxesService.java    | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0824d8f9/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
index af0b658..581d1e9 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
@@ -103,8 +103,7 @@ public class UserMailboxesService {
     }
 
     private Stream<MailboxPath> listChildren(MailboxPath mailboxPath, MailboxSession mailboxSession) throws MailboxException {
-        return mailboxManager.search(createUserMailboxesQuery(mailboxSession), mailboxSession)
-            .stream()
+        return listUserMailboxes(mailboxSession)
             .map(MailboxMetaData::getPath)
             .filter(path -> path.getHierarchyLevels(mailboxSession.getPathDelimiter()).contains(mailboxPath));
     }
@@ -127,13 +126,10 @@ public class UserMailboxesService {
     }
 
     private Stream<MailboxMetaData> listUserMailboxes(MailboxSession mailboxSession) throws MailboxException {
-        return mailboxManager.search(createUserMailboxesQuery(mailboxSession), mailboxSession)
+        return mailboxManager.search(
+            MailboxQuery.privateMailboxesBuilder(mailboxSession).build(),
+            mailboxSession)
             .stream();
     }
 
-    private MailboxQuery createUserMailboxesQuery(MailboxSession mailboxSession) {
-        return MailboxQuery.privateMailboxesBuilder(mailboxSession)
-            .build();
-    }
-
 }


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


[14/15] james-project git commit: MAILBOX-319 General fixes: Fix MAILDIR MPT tests

Posted by ad...@apache.org.
MAILBOX-319 General fixes: Fix MAILDIR MPT tests

 - We need a non null MessageId
 - User flags can be null, FlagsFactory need to support it
 - Attachment copy is not supported


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

Branch: refs/heads/master
Commit: 6500ba87eee6a5785da603585d7de8a10c8a6d4f
Parents: 99c1819
Author: benwa <bt...@linagora.com>
Authored: Fri Nov 3 09:50:08 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:50:52 2017 +0700

----------------------------------------------------------------------
 .../maildir/mail/MaildirMessageMapper.java      |  2 +-
 .../maildir/mail/model/MaildirMessage.java      |  3 ++-
 .../mailbox/store/mail/model/FlagsFactory.java  |  6 +++++-
 .../mail/model/impl/SimpleMailboxMessage.java   | 20 +++++++++++++++-----
 .../store/mail/model/FlagsFactoryTest.java      |  9 +++++++++
 5 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
index 11370ec..18f4d59 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
@@ -259,7 +259,7 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
     @Override
     protected MessageMetaData copy(Mailbox mailbox, MessageUid uid, long modSeq, MailboxMessage original)
             throws MailboxException {
-        SimpleMailboxMessage theCopy = SimpleMailboxMessage.copy(mailbox.getMailboxId(), original);
+        SimpleMailboxMessage theCopy = SimpleMailboxMessage.copyWithoutAttachments(mailbox.getMailboxId(), original);
         Flags flags = theCopy.createFlags();
         flags.add(Flag.RECENT);
         theCopy.setFlags(flags);

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index 2d8c041..3ca4267 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -33,6 +33,7 @@ import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.mailbox.maildir.MaildirMessageName;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.apache.james.mailbox.store.mail.model.Message;
 import org.apache.james.mailbox.store.mail.model.Property;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
@@ -239,7 +240,7 @@ public class MaildirMessage implements Message {
 
     @Override
     public MessageId getMessageId() {
-        return null;
+        return new DefaultMessageId();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
index 44a025f..eb3c9e4 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
@@ -25,6 +25,8 @@ import java.util.stream.Stream;
 
 import javax.mail.Flags;
 
+import com.google.common.collect.ImmutableList;
+
 public class FlagsFactory {
 
     private static Flags asFlags(MailboxMessage mailboxMessage, String[] userFlags) {
@@ -93,7 +95,9 @@ public class FlagsFactory {
         }
 
         public Builder addUserFlags(String... userFlags) {
-            this.userFlags.addAll(Arrays.asList(userFlags));
+            this.userFlags.addAll(Optional.ofNullable(userFlags)
+                .map(Arrays::asList)
+                .orElse(ImmutableList.of()));
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
index e3af3f5..a0311ae 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
@@ -24,10 +24,12 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
+
 import javax.mail.Flags;
 import javax.mail.internet.SharedInputStream;
 import javax.mail.util.SharedByteArrayInputStream;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.ComposedMessageId;
@@ -39,7 +41,6 @@ import org.apache.james.mailbox.store.mail.model.DelegatingMailboxMessage;
 import org.apache.james.mailbox.store.mail.model.FlagsFactory;
 import org.apache.james.mailbox.store.mail.model.FlagsFilter;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-import org.apache.commons.io.IOUtils;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
@@ -149,6 +150,15 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
     }
 
     public static Builder from(MailboxMessage original) throws MailboxException {
+        return fromWithoutAttachments(original)
+            .addAttachments(original.getAttachments());
+    }
+
+    public static SimpleMailboxMessage copy(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
+        return from(original).mailboxId(mailboxId).build();
+    }
+
+    public static Builder fromWithoutAttachments(MailboxMessage original) throws MailboxException {
         PropertyBuilder propertyBuilder = new PropertyBuilder(original.getProperties());
         propertyBuilder.setTextualLineCount(original.getTextualLineCount());
         return builder()
@@ -158,12 +168,12 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
             .internalDate(original.getInternalDate())
             .size(original.getFullContentOctets())
             .flags(original.createFlags())
-            .propertyBuilder(propertyBuilder)
-            .addAttachments(original.getAttachments());
+            .propertyBuilder(propertyBuilder);
     }
 
-    public static SimpleMailboxMessage copy(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
-        return from(original).mailboxId(mailboxId).build();
+    public static SimpleMailboxMessage copyWithoutAttachments(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
+        return fromWithoutAttachments(original)
+            .mailboxId(mailboxId).build();
     }
 
     private static SharedByteArrayInputStream copyFullContent(MailboxMessage original) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
index 8833037..9f080cd 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
@@ -60,6 +60,15 @@ public class FlagsFactoryTest {
     }
 
     @Test
+    public void builderShouldAcceptNullUserFlags() {
+        assertThat(
+            FlagsFactory.builder()
+                .addUserFlags(null)
+                .build())
+            .isEqualTo(new Flags());
+    }
+
+    @Test
     public void builderShouldFilterUserFlags() {
         Flags actual = FlagsFactory.builder()
             .flags(someFlags)


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


[07/15] james-project git commit: PROTOCOLS-117 Bonus: Remove another "Mock like" ImapSession implementation

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Remove another "Mock like" ImapSession implementation


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

Branch: refs/heads/master
Commit: c2669b885b44d15e184e31407c9d750f8f08a82f
Parents: b99318e
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 13:58:27 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../james/mpt/host/JamesImapHostSystem.java     |   8 +-
 .../james/mpt/session/ImapSessionImpl.java      | 129 -------------------
 2 files changed, 4 insertions(+), 133 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c2669b88/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
index 662002a..21386e7 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
@@ -28,6 +28,7 @@ import org.apache.james.imap.api.ImapConfiguration;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.main.ImapRequestStreamHandler;
+import org.apache.james.imap.encode.FakeImapSession;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
@@ -40,7 +41,6 @@ import org.apache.james.mpt.api.ImapHostSystem;
 import org.apache.james.mpt.helper.ByteBufferInputStream;
 import org.apache.james.mpt.helper.ByteBufferOutputStream;
 import org.apache.james.mpt.imapmailbox.GrantRightsOnHost;
-import org.apache.james.mpt.session.ImapSessionImpl;
 import org.apache.james.user.memory.MemoryUsersRepository;
 
 import com.google.common.base.Throwables;
@@ -123,7 +123,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights
 
         ImapRequestStreamHandler handler;
 
-        ImapSessionImpl session;
+        FakeImapSession session;
 
         boolean isReadLast = true;
 
@@ -131,7 +131,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights
             out = new ByteBufferOutputStream(continuation);
             in = new ByteBufferInputStream();
             handler = new ImapRequestStreamHandler(decoder, processor, encoder);
-            session = new ImapSessionImpl();
+            session = new FakeImapSession();
         }
 
         public String readLine() throws Exception {
@@ -148,7 +148,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem, GrantRights
         }
 
         public void restart() throws Exception {
-            session = new ImapSessionImpl();
+            session = new FakeImapSession();
         }
 
         public void stop() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c2669b88/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
deleted file mode 100644
index 5c9d5e2..0000000
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************
- * 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.mpt.session;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.james.imap.api.ImapSessionState;
-import org.apache.james.imap.api.process.ImapLineHandler;
-import org.apache.james.imap.api.process.ImapSession;
-import org.apache.james.imap.api.process.SelectedMailbox;
-
-public class ImapSessionImpl implements ImapSession {
-
-    private ImapSessionState state = ImapSessionState.NON_AUTHENTICATED;
-
-    private SelectedMailbox selectedMailbox = null;
-
-    private final Map<String, Object> attributesByKey;
-
-    public ImapSessionImpl() {
-        this.attributesByKey = new ConcurrentHashMap<>();
-    }
-
-    public void logout() {
-        closeMailbox();
-        state = ImapSessionState.LOGOUT;
-    }
-
-    public void authenticated() {
-        this.state = ImapSessionState.AUTHENTICATED;
-    }
-
-    public void deselect() {
-        this.state = ImapSessionState.AUTHENTICATED;
-        closeMailbox();
-    }
-
-    public void selected(SelectedMailbox mailbox) {
-        this.state = ImapSessionState.SELECTED;
-        closeMailbox();
-        this.selectedMailbox = mailbox;
-    }
-
-    public SelectedMailbox getSelected() {
-        return this.selectedMailbox;
-    }
-
-    public ImapSessionState getState() {
-        return this.state;
-    }
-
-    public void closeMailbox() {
-        if (selectedMailbox != null) {
-            selectedMailbox.deselect();
-            selectedMailbox = null;
-        }
-    }
-
-    public Object getAttribute(String key) {
-        return attributesByKey.get(key);
-    }
-
-    public void setAttribute(String key, Object value) {
-        if (value == null) {
-            attributesByKey.remove(key);
-        }
-        else {
-            attributesByKey.put(key, value);
-        }
-    }
-
-    public boolean startTLS() {
-        return false;
-    }
-
-    public boolean supportStartTLS() {
-        return false;
-    }
-
-    public boolean isCompressionSupported() {
-        return false;
-    }
-
-    public boolean startCompression() {
-        return false;
-    }
-
-    public void pushLineHandler(ImapLineHandler lineHandler) {
-
-    }
-
-    public void popLineHandler() {
-
-    }
-
-    public boolean isPlainAuthDisallowed() {
-        return false;
-    }
-
-    public boolean isTLSActive() {
-        return false;
-    }
-
-    public boolean supportMultipleNamespaces() {
-        return false;
-    }
-
-    public boolean isCompressionActive() {
-        return false;
-    }
-
-}


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


[10/15] james-project git commit: PROTOCOLS-117 General fixes: Most MPT tests do not need Guice

Posted by ad...@apache.org.
PROTOCOLS-117 General fixes: Most MPT tests do not need Guice


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

Branch: refs/heads/master
Commit: deefc33a73056f434b132fedff670749ccc69b70
Parents: 4e74c7c
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 2 17:40:59 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../ElasticSearchMailboxTestModule.java         | 33 --------------
 .../ElasticSearchUidSearchOnIndex.java          |  7 +--
 .../hbase/HBaseAuthenticatePlain.java           |  7 +--
 .../hbase/HBaseAuthenticatedState.java          |  7 +--
 .../hbase/HBaseConcurrentSessions.java          |  7 +--
 .../mpt/imapmailbox/hbase/HBaseCondstore.java   |  7 +--
 .../james/mpt/imapmailbox/hbase/HBaseCopy.java  |  7 +--
 .../mpt/imapmailbox/hbase/HBaseEvents.java      |  7 +--
 .../mpt/imapmailbox/hbase/HBaseExpunge.java     |  7 +--
 .../james/mpt/imapmailbox/hbase/HBaseFetch.java |  7 +--
 .../hbase/HBaseFetchBodySection.java            |  7 +--
 .../hbase/HBaseFetchBodyStructure.java          |  7 +--
 .../imapmailbox/hbase/HBaseFetchHeaders.java    |  7 +--
 .../mpt/imapmailbox/hbase/HBaseListing.java     |  7 +--
 .../hbase/HBaseMailboxAnnotation.java           |  7 +--
 .../hbase/HBaseMailboxTestModule.java           | 45 --------------------
 .../hbase/HBaseMailboxWithLongNameError.java    |  7 +--
 .../james/mpt/imapmailbox/hbase/HBaseMove.java  |  7 +--
 .../hbase/HBaseNonAuthenticatedState.java       |  7 +--
 .../imapmailbox/hbase/HBasePartialFetch.java    |  7 +--
 .../mpt/imapmailbox/hbase/HBaseQuotaTest.java   |  7 +--
 .../mpt/imapmailbox/hbase/HBaseRename.java      |  7 +--
 .../mpt/imapmailbox/hbase/HBaseSearch.java      |  7 +--
 .../mpt/imapmailbox/hbase/HBaseSecurity.java    |  7 +--
 .../mpt/imapmailbox/hbase/HBaseSelect.java      |  7 +--
 .../imapmailbox/hbase/HBaseSelectedInbox.java   |  7 +--
 .../imapmailbox/hbase/HBaseSelectedState.java   |  7 +--
 .../mpt/imapmailbox/hbase/HBaseUidSearch.java   |  7 +--
 .../hbase/HBaseUidSearchOnIndex.java            |  7 +--
 .../hbase/HBaseUserFlagsSupport.java            |  7 +--
 .../inmemory/InMemoryAuthenticatePlain.java     |  7 +--
 .../inmemory/InMemoryAuthenticatedState.java    |  7 +--
 .../inmemory/InMemoryConcurrentSessions.java    |  7 +--
 .../imapmailbox/inmemory/InMemoryCondstore.java |  7 +--
 .../mpt/imapmailbox/inmemory/InMemoryCopy.java  |  7 +--
 .../imapmailbox/inmemory/InMemoryEvents.java    |  7 +--
 .../imapmailbox/inmemory/InMemoryExpunge.java   |  7 +--
 .../mpt/imapmailbox/inmemory/InMemoryFetch.java |  7 +--
 .../inmemory/InMemoryFetchBodySection.java      |  7 +--
 .../inmemory/InMemoryFetchBodyStructure.java    |  7 +--
 .../inmemory/InMemoryFetchHeaders.java          |  7 +--
 .../imapmailbox/inmemory/InMemoryListing.java   |  7 +--
 .../InMemoryListingWithSharingTest.java         |  7 +--
 .../inmemory/InMemoryMailboxAnnotation.java     |  7 +--
 .../inmemory/InMemoryMailboxTestModule.java     | 44 -------------------
 .../InMemoryMailboxWithLongNameSuccess.java     |  7 +--
 .../mpt/imapmailbox/inmemory/InMemoryMove.java  |  7 +--
 .../inmemory/InMemoryNonAuthenticatedState.java |  7 +--
 .../inmemory/InMemoryPartialFetch.java          |  7 +--
 .../imapmailbox/inmemory/InMemoryQuotaTest.java |  7 +--
 .../imapmailbox/inmemory/InMemoryRename.java    |  7 +--
 .../imapmailbox/inmemory/InMemorySearch.java    |  7 +--
 .../imapmailbox/inmemory/InMemorySecurity.java  |  7 +--
 .../imapmailbox/inmemory/InMemorySelect.java    |  7 +--
 .../inmemory/InMemorySelectedInbox.java         |  7 +--
 .../inmemory/InMemorySelectedState.java         |  7 +--
 .../imapmailbox/inmemory/InMemoryUidSearch.java |  7 +--
 .../inmemory/InMemoryUidSearchOnIndex.java      |  7 +--
 .../inmemory/InMemoryUserFlagsSupport.java      |  7 +--
 .../imapmailbox/jpa/JpaAuthenticatePlain.java   |  7 +--
 .../imapmailbox/jpa/JpaAuthenticatedState.java  |  7 +--
 .../imapmailbox/jpa/JpaConcurrentSessions.java  |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaCondstore.java |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaCopy.java      |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaEvents.java    |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaExpunge.java   |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaFetch.java     |  7 +--
 .../imapmailbox/jpa/JpaFetchBodySection.java    |  7 +--
 .../imapmailbox/jpa/JpaFetchBodyStructure.java  |  7 +--
 .../mpt/imapmailbox/jpa/JpaFetchHeaders.java    |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaListing.java   |  7 +--
 .../imapmailbox/jpa/JpaMailboxAnnotation.java   |  7 +--
 .../imapmailbox/jpa/JpaMailboxTestModule.java   | 44 -------------------
 .../jpa/JpaMailboxWithLongNameError.java        |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaMove.java      |  7 +--
 .../jpa/JpaNonAuthenticatedState.java           |  7 +--
 .../mpt/imapmailbox/jpa/JpaPartialFetch.java    |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaQuotaTest.java |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaRename.java    |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaSearch.java    |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaSecurity.java  |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaSelect.java    |  7 +--
 .../mpt/imapmailbox/jpa/JpaSelectedInbox.java   |  7 +--
 .../mpt/imapmailbox/jpa/JpaSelectedState.java   |  7 +--
 .../james/mpt/imapmailbox/jpa/JpaUidSearch.java |  7 +--
 .../imapmailbox/jpa/JpaUidSearchOnIndex.java    |  7 +--
 .../imapmailbox/jpa/JpaUserFlagsSupport.java    |  7 +--
 .../lucenesearch/LuceneAuthenticatePlain.java   |  7 +--
 .../lucenesearch/LuceneAuthenticatedState.java  |  7 +--
 .../lucenesearch/LuceneConcurrentSessions.java  |  7 +--
 .../lucenesearch/LuceneCondstore.java           |  7 +--
 .../imapmailbox/lucenesearch/LuceneCopy.java    |  7 +--
 .../imapmailbox/lucenesearch/LuceneEvents.java  |  7 +--
 .../imapmailbox/lucenesearch/LuceneExpunge.java |  7 +--
 .../imapmailbox/lucenesearch/LuceneFetch.java   |  7 +--
 .../lucenesearch/LuceneFetchBodySection.java    |  7 +--
 .../lucenesearch/LuceneFetchBodyStructure.java  |  7 +--
 .../lucenesearch/LuceneFetchHeaders.java        |  7 +--
 .../imapmailbox/lucenesearch/LuceneListing.java |  7 +--
 .../lucenesearch/LuceneMailboxAnnotation.java   |  7 +--
 .../LuceneMailboxWithLongNameError.java         |  7 +--
 .../imapmailbox/lucenesearch/LuceneMove.java    |  7 +--
 .../LuceneNonAuthenticatedState.java            |  7 +--
 .../lucenesearch/LucenePartialFetch.java        |  7 +--
 .../lucenesearch/LuceneQuotaTest.java           |  7 +--
 .../imapmailbox/lucenesearch/LuceneRename.java  |  7 +--
 .../imapmailbox/lucenesearch/LuceneSearch.java  |  7 +--
 .../LuceneSearchMailboxTestModule.java          | 44 -------------------
 .../lucenesearch/LuceneSecurity.java            |  7 +--
 .../imapmailbox/lucenesearch/LuceneSelect.java  |  7 +--
 .../lucenesearch/LuceneSelectedInbox.java       |  7 +--
 .../lucenesearch/LuceneSelectedState.java       |  7 +--
 .../lucenesearch/LuceneUidSearch.java           |  7 +--
 .../lucenesearch/LuceneUidSearchOnIndex.java    |  7 +--
 .../lucenesearch/LuceneUserFlagsSupport.java    |  7 +--
 .../maildir/MaildirAuthenticatePlain.java       |  7 +--
 .../maildir/MaildirAuthenticatedState.java      |  7 +--
 .../maildir/MaildirConcurrentSessions.java      |  7 +--
 .../imapmailbox/maildir/MaildirCondstore.java   |  7 +--
 .../mpt/imapmailbox/maildir/MaildirCopy.java    |  7 +--
 .../mpt/imapmailbox/maildir/MaildirEvents.java  |  7 +--
 .../mpt/imapmailbox/maildir/MaildirExpunge.java |  7 +--
 .../mpt/imapmailbox/maildir/MaildirFetch.java   |  7 +--
 .../maildir/MaildirFetchBodySection.java        |  7 +--
 .../maildir/MaildirFetchBodyStructure.java      |  7 +--
 .../maildir/MaildirFetchHeaders.java            |  7 +--
 .../mpt/imapmailbox/maildir/MaildirListing.java |  7 +--
 .../maildir/MaildirMailboxAnnotation.java       |  7 +--
 .../maildir/MaildirMailboxTestModule.java       | 44 -------------------
 .../MaildirMailboxWithLongNameError.java        |  7 +--
 .../mpt/imapmailbox/maildir/MaildirMove.java    |  7 +--
 .../maildir/MaildirNonAuthenticatedState.java   |  7 +--
 .../maildir/MaildirPartialFetch.java            |  7 +--
 .../imapmailbox/maildir/MaildirQuotaTest.java   |  7 +--
 .../mpt/imapmailbox/maildir/MaildirRename.java  |  7 +--
 .../mpt/imapmailbox/maildir/MaildirSearch.java  |  7 +--
 .../imapmailbox/maildir/MaildirSecurity.java    |  7 +--
 .../mpt/imapmailbox/maildir/MaildirSelect.java  |  7 +--
 .../maildir/MaildirSelectedInbox.java           |  7 +--
 .../maildir/MaildirSelectedState.java           |  7 +--
 .../imapmailbox/maildir/MaildirUidSearch.java   |  7 +--
 .../maildir/MaildirUidSearchOnIndex.java        |  7 +--
 .../maildir/MaildirUserFlagsSupport.java        |  7 +--
 143 files changed, 274 insertions(+), 939 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchMailboxTestModule.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchMailboxTestModule.java
deleted file mode 100644
index b501f95..0000000
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchMailboxTestModule.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.elasticsearch;
-
-import com.google.inject.AbstractModule;
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.imapmailbox.elasticsearch.host.ElasticSearchHostSystem;
-
-public class ElasticSearchMailboxTestModule extends AbstractModule {
-    @Override
-    protected void configure() {
-        bind(ImapHostSystem.class).to(ElasticSearchHostSystem.class);
-        bind(HostSystem.class).to(ElasticSearchHostSystem.class);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchUidSearchOnIndex.java b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchUidSearchOnIndex.java
index caa354e..186ee31 100644
--- a/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/elasticsearch/src/test/java/org/apache/james/mpt/imapmailbox/elasticsearch/ElasticSearchUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.elasticsearch;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.elasticsearch.host.ElasticSearchHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class ElasticSearchUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new ElasticSearchMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new ElasticSearchHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatePlain.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatePlain.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatePlain.java
index c83847d..06e3114 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatePlain.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseAuthenticatePlain extends AuthenticatePlain {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatedState.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatedState.java
index f110e2d..7bbc41a 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseAuthenticatedState extends AuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseConcurrentSessions.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseConcurrentSessions.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseConcurrentSessions.java
index f518653..4d36596 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseConcurrentSessions.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseConcurrentSessions.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseConcurrentSessions extends ConcurrentSessions {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCondstore.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCondstore.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCondstore.java
index 779b414..afeb3cc 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCondstore.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCondstore.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Condstore;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseCondstore extends Condstore {
 
     private JamesImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(JamesImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCopy.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCopy.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCopy.java
index 44235e8..4040237 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCopy.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseCopy.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Copy;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseCopy extends Copy {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseEvents.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseEvents.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseEvents.java
index 2f86772..dadcd90 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseEvents.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseEvents.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Events;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseEvents extends Events {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseExpunge.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseExpunge.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseExpunge.java
index 548aff5..c8389e5 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseExpunge.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseExpunge.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Expunge;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseExpunge extends Expunge {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetch.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetch.java
index 8b37745..d4a7734 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetch.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Fetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseFetch extends Fetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodySection.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodySection.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodySection.java
index e36560c..2ff9068 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodySection.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodySection.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseFetchBodySection extends FetchBodySection {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodyStructure.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodyStructure.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodyStructure.java
index a8b7a8f..f900066 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodyStructure.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchBodyStructure.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseFetchBodyStructure extends FetchBodyStructure {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchHeaders.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchHeaders.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchHeaders.java
index 9887b71..edcb47b 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchHeaders.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseFetchHeaders.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseFetchHeaders extends FetchHeaders {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseListing.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseListing.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseListing.java
index a736e70..9b0b9fb 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseListing.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseListing.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseListing extends Listing {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxAnnotation.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxAnnotation.java
index 3b4694b..cd97f66 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxAnnotation.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxAnnotation.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseMailboxAnnotation extends MailboxAnnotation {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxTestModule.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxTestModule.java
deleted file mode 100644
index faa301f..0000000
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxTestModule.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.hbase;
-
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.host.JamesImapHostSystem;
-import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-public class HBaseMailboxTestModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(HostSystem.class).to(JamesImapHostSystem.class);
-        bind(ImapHostSystem.class).to(JamesImapHostSystem.class);
-    }
-
-    @Provides
-    @Singleton
-    public JamesImapHostSystem provideHostSystem() throws Exception {
-        return HBaseHostSystem.build();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxWithLongNameError.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxWithLongNameError.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxWithLongNameError.java
index d933565..18d28e1 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxWithLongNameError.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMailboxWithLongNameError.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxWithLongNameError;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseMailboxWithLongNameError extends MailboxWithLongNameError {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMove.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMove.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMove.java
index 3a1dcbb..54fabed 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMove.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseMove.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseMove extends Move {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         super.setUp();
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseNonAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseNonAuthenticatedState.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseNonAuthenticatedState.java
index 2e065b4..b9f5275 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseNonAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseNonAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseNonAuthenticatedState extends NonAuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBasePartialFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBasePartialFetch.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBasePartialFetch.java
index 6221b57..d417e74 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBasePartialFetch.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBasePartialFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBasePartialFetch extends PartialFetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseQuotaTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseQuotaTest.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseQuotaTest.java
index a8a1b57..709e0d2 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseQuotaTest.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseQuotaTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseQuotaTest extends QuotaTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseRename.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseRename.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseRename.java
index bf38dba..75b309d 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseRename.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseRename.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Rename;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseRename extends Rename {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSearch.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSearch.java
index 8ee268e..db894ca 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSearch.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Search;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseSearch extends Search {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSecurity.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSecurity.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSecurity.java
index ba629e9..e5cdf32 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSecurity.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSecurity.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Security;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseSecurity extends Security {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelect.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelect.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelect.java
index e79181a..7de5ae5 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelect.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelect.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Select;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseSelect extends Select {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedInbox.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedInbox.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedInbox.java
index efbe37f..00e08ee 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedInbox.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedInbox.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedInbox;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseSelectedInbox extends SelectedInbox {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedState.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedState.java
index 760ce66..da758db 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedState.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseSelectedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.SelectedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseSelectedState extends SelectedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearch.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearch.java
index f04bdc3..1081dfe 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearch.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseUidSearch extends UidSearch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearchOnIndex.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearchOnIndex.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearchOnIndex.java
index c51ded0..98451c0 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearchOnIndex.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUidSearchOnIndex.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UidSearchOnIndex;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseUidSearchOnIndex extends UidSearchOnIndex {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUserFlagsSupport.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUserFlagsSupport.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUserFlagsSupport.java
index 0c7ef3e..349094e 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUserFlagsSupport.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/HBaseUserFlagsSupport.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.hbase;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.hbase.host.HBaseHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.UserFlagsSupport;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class HBaseUserFlagsSupport extends UserFlagsSupport {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new HBaseMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = HBaseHostSystem.build();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlain.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlain.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlain.java
index 03d2f72..e05cbd5 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlain.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatePlain.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatePlain;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryAuthenticatePlain extends AuthenticatePlain {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedState.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedState.java
index b21a04a..c25efd8 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.AuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryAuthenticatedState extends AuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessions.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessions.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessions.java
index 2185441..5d8ac0f 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessions.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryConcurrentSessions.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ConcurrentSessions;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryConcurrentSessions extends ConcurrentSessions {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstore.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstore.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstore.java
index 3df824a..f86e1d2 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstore.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCondstore.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.host.JamesImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Condstore;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryCondstore extends Condstore {
 
     private JamesImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(JamesImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopy.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopy.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopy.java
index 8113480..bd88aab 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopy.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryCopy.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Copy;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryCopy extends Copy {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEvents.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEvents.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEvents.java
index f1ddc35..ab9cfa6 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEvents.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryEvents.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Events;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryEvents extends Events {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpunge.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpunge.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpunge.java
index 5834830..7498a11 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpunge.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryExpunge.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Expunge;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryExpunge extends Expunge {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetch.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetch.java
index a71c163..6a01ca1 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetch.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Fetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryFetch extends Fetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySection.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySection.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySection.java
index 0862752..293de39 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySection.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodySection.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodySection;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryFetchBodySection extends FetchBodySection {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructure.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructure.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructure.java
index 61051cc..11b89ab 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructure.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchBodyStructure.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchBodyStructure;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryFetchBodyStructure extends FetchBodyStructure {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeaders.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeaders.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeaders.java
index c9209eb..4cd581a 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeaders.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryFetchHeaders.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.FetchHeaders;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryFetchHeaders extends FetchHeaders {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListing.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListing.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListing.java
index b77315d..12b10c0 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListing.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListing.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Listing;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryListing extends Listing {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java
index b5a54ee..e816a45 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryListingWithSharingTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.ListingWithSharingTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryListingWithSharingTest extends ListingWithSharingTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotation.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotation.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotation.java
index 7235fb2..e19cca1 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotation.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxAnnotation.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxAnnotation;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryMailboxAnnotation extends MailboxAnnotation {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTestModule.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTestModule.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTestModule.java
deleted file mode 100644
index 06d70f6..0000000
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxTestModule.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************
- * 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.mpt.imapmailbox.inmemory;
-
-import org.apache.james.mpt.api.HostSystem;
-import org.apache.james.mpt.api.ImapHostSystem;
-import org.apache.james.mpt.host.JamesImapHostSystem;
-import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-
-public class InMemoryMailboxTestModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        bind(HostSystem.class).to(JamesImapHostSystem.class);
-        bind(ImapHostSystem.class).to(JamesImapHostSystem.class);
-    }
-
-    @Provides
-    @Singleton
-    public JamesImapHostSystem provideHostSystem() throws Exception {
-        return InMemoryHostSystem.build();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameSuccess.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameSuccess.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameSuccess.java
index 29dce81..79b1e11 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameSuccess.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMailboxWithLongNameSuccess.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.MailboxWithLongNameSuccess;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryMailboxWithLongNameSuccess extends MailboxWithLongNameSuccess {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMove.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMove.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMove.java
index aa834f4..369fc57 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMove.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryMove.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.Move;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryMove extends Move {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedState.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedState.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedState.java
index 3439a99..c2dbf3f 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedState.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryNonAuthenticatedState.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.NonAuthenticatedState;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryNonAuthenticatedState extends NonAuthenticatedState {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetch.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetch.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetch.java
index 339d404..ab8fb46 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetch.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryPartialFetch.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.PartialFetch;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryPartialFetch extends PartialFetch {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/deefc33a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java
index 1ee0a6d..9bcb076 100644
--- a/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java
+++ b/mpt/impl/imap-mailbox/inmemory/src/test/java/org/apache/james/mpt/imapmailbox/inmemory/InMemoryQuotaTest.java
@@ -20,21 +20,18 @@
 package org.apache.james.mpt.imapmailbox.inmemory;
 
 import org.apache.james.mpt.api.ImapHostSystem;
+import org.apache.james.mpt.imapmailbox.inmemory.host.InMemoryHostSystem;
 import org.apache.james.mpt.imapmailbox.suite.QuotaTest;
 import org.junit.After;
 import org.junit.Before;
 
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
 public class InMemoryQuotaTest extends QuotaTest {
 
     private ImapHostSystem system;
 
     @Before
     public void setUp() throws Exception {
-        Injector injector = Guice.createInjector(new InMemoryMailboxTestModule());
-        system = injector.getInstance(ImapHostSystem.class);
+        system = new InMemoryHostSystem();
         system.beforeTest();
         super.setUp();
     }


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


[04/15] james-project git commit: PROTOCOLS-117 General fixes: LSUB should not be used for hierarchy delimiter finding

Posted by ad...@apache.org.
PROTOCOLS-117 General fixes: LSUB should not be used for hierarchy delimiter finding

RFC-3501 Have no mentions about it.
Most probably code was originally copy and pasted from LIST.

We should also take this occasion to refactor LSUB a bit


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

Branch: refs/heads/master
Commit: 4e74c7c1bd07d398c58aa799386ba2101665e6a2
Parents: 8ffa76d
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 14:57:09 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 11:11:44 2017 +0700

----------------------------------------------------------------------
 .../james/imap/processor/LSubProcessor.java     | 105 ++++++-------------
 .../james/imap/processor/LSubProcessorTest.java |  20 ----
 2 files changed, 34 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4e74c7c1/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 62b7d29..f3a2dd8 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -30,7 +30,6 @@ import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
-import org.apache.james.imap.main.PathConverter;
 import org.apache.james.imap.message.request.LsubRequest;
 import org.apache.james.imap.message.response.LSubResponse;
 import org.apache.james.mailbox.MailboxManager;
@@ -38,9 +37,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.SubscriptionException;
-import org.apache.james.mailbox.model.MailboxConstants;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.search.MailboxQuery;
+import org.apache.james.mailbox.model.search.MailboxNameExpression;
 import org.apache.james.mailbox.model.search.PrefixedRegex;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
@@ -55,49 +52,54 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
         super(LsubRequest.class, next, mailboxManager, subscriptionManager, factory, metricFactory);
     }
 
-    private void listSubscriptions(ImapSession session, Responder responder, String referenceName, String mailboxName) throws SubscriptionException, MailboxException {
-        final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
-        final Collection<String> mailboxes = getSubscriptionManager().subscriptions(mailboxSession);
-        // If the mailboxName is fully qualified, ignore the reference name.
-        String finalReferencename = referenceName;
+    /**
+     * @see org.apache.james.imap.processor.AbstractSubscriptionProcessor
+     * #doProcessRequest(org.apache.james.imap.api.message.request.ImapRequest,
+     * org.apache.james.imap.api.process.ImapSession, java.lang.String,
+     * org.apache.james.imap.api.ImapCommand,
+     * org.apache.james.imap.api.process.ImapProcessor.Responder)
+     */
+    protected void doProcessRequest(LsubRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) {
+        String referenceName = request.getBaseReferenceName();
+        String mailboxPattern = request.getMailboxPattern();
 
-        if (mailboxName.charAt(0) == MailboxConstants.NAMESPACE_PREFIX_CHAR) {
-            finalReferencename = "";
-        }
+        try {
+            listSubscriptions(session, responder, referenceName, mailboxPattern);
 
-        // Is the interpreted (combined) pattern relative?
-        boolean isRelative = ((finalReferencename + mailboxName).charAt(0) != MailboxConstants.NAMESPACE_PREFIX_CHAR);
-        MailboxPath basePath = null;
-        if (isRelative) {
-            basePath = MailboxPath.forUser(mailboxSession.getUser().getUserName(), CharsetUtil.decodeModifiedUTF7(finalReferencename));
-        } else {
-            basePath = PathConverter.forSession(session).buildFullPath(CharsetUtil.decodeModifiedUTF7(finalReferencename));
+            okComplete(command, tag, responder);
+        } catch (MailboxException e) {
+            LOGGER.error("LSub failed for reference " + referenceName + " and pattern " + mailboxPattern, e);
+            no(command, tag, responder, HumanReadableText.GENERIC_LSUB_FAILURE);
         }
+    }
+
+    private void listSubscriptions(ImapSession session, Responder responder, String referenceName, String mailboxName) throws SubscriptionException, MailboxException {
+        MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
+        Collection<String> mailboxes = getSubscriptionManager().subscriptions(mailboxSession);
+
+        String decodedMailName = CharsetUtil.decodeModifiedUTF7(referenceName);
+
+        MailboxNameExpression expression = new PrefixedRegex(
+            decodedMailName,
+            CharsetUtil.decodeModifiedUTF7(mailboxName),
+            mailboxSession.getPathDelimiter());
+        Collection<String> mailboxResponses = new ArrayList<>();
 
-        final MailboxQuery expression = MailboxQuery.builder()
-            .userAndNamespaceFrom(basePath)
-            .expression(new PrefixedRegex(
-                basePath.getName(),
-                CharsetUtil.decodeModifiedUTF7(mailboxName),
-                mailboxSession.getPathDelimiter()))
-            .build();
-        final Collection<String> mailboxResponses = new ArrayList<>();
         for (String mailbox : mailboxes) {
             respond(responder, expression, mailbox, true, mailboxes, mailboxResponses, mailboxSession.getPathDelimiter());
         }
     }
 
-    private void respond(Responder responder, MailboxQuery expression, String mailboxName, boolean originalSubscription, Collection<String> mailboxes, Collection<String> mailboxResponses, char delimiter) {
+    private void respond(Responder responder, MailboxNameExpression expression, String mailboxName, boolean originalSubscription, Collection<String> mailboxes, Collection<String> mailboxResponses, char delimiter) {
         if (expression.isExpressionMatch(mailboxName)) {
             if (!mailboxResponses.contains(mailboxName)) {
-                final LSubResponse response = new LSubResponse(mailboxName, !originalSubscription, delimiter);
-                responder.respond(response);
+                responder.respond(new LSubResponse(mailboxName, !originalSubscription, delimiter));
                 mailboxResponses.add(mailboxName);
             }
         } else {
-            final int lastDelimiter = mailboxName.lastIndexOf(delimiter);
+            int lastDelimiter = mailboxName.lastIndexOf(delimiter);
             if (lastDelimiter > 0) {
-                final String parentMailbox = mailboxName.substring(0, lastDelimiter);
+                String parentMailbox = mailboxName.substring(0, lastDelimiter);
                 if (!mailboxes.contains(parentMailbox)) {
                     respond(responder, expression, parentMailbox, false, mailboxes, mailboxResponses, delimiter);
                 }
@@ -105,45 +107,6 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
         }
     }
 
-    /**
-     * An empty mailboxPattern signifies a request for the hierarchy delimiter
-     * and root name of the referenceName argument
-     * 
-     * @param referenceName
-     *            IMAP reference name, possibly null
-     */
-    private void respondWithHierarchyDelimiter(Responder responder, char delimiter) {
-        final LSubResponse response = new LSubResponse("", true, delimiter);
-        responder.respond(response);
-    }
-
-    /**
-     * @see org.apache.james.imap.processor.AbstractSubscriptionProcessor
-     * #doProcessRequest(org.apache.james.imap.api.message.request.ImapRequest,
-     * org.apache.james.imap.api.process.ImapSession, java.lang.String,
-     * org.apache.james.imap.api.ImapCommand,
-     * org.apache.james.imap.api.process.ImapProcessor.Responder)
-     */
-    protected void doProcessRequest(LsubRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) {
-        final String referenceName = request.getBaseReferenceName();
-        final String mailboxPattern = request.getMailboxPattern();
-        final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
-
-        try {
-            if (mailboxPattern.length() == 0) {
-                respondWithHierarchyDelimiter(responder, mailboxSession.getPathDelimiter());
-            } else {
-                listSubscriptions(session, responder, referenceName, mailboxPattern);
-            }
-
-            okComplete(command, tag, responder);
-        } catch (MailboxException e) {
-            LOGGER.error("LSub failed for reference " + referenceName + " and pattern " + mailboxPattern, e);
-            final HumanReadableText displayTextKey = HumanReadableText.GENERIC_LSUB_FAILURE;
-            no(command, tag, responder, displayTextKey);
-        }
-    }
-
     @Override
     protected Closeable addContextToMDC(LsubRequest message) {
         return MDCBuilder.create()

http://git-wip-us.apache.org/repos/asf/james-project/blob/4e74c7c1/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
index 0f62d3a..058103f 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/LSubProcessorTest.java
@@ -139,26 +139,6 @@ public class LSubProcessorTest {
     }
 
     @Test
-    public void testHierarchy() throws Exception {
-        subscriptions.add(MAILBOX_A);
-        subscriptions.add(MAILBOX_B);
-        subscriptions.add(MAILBOX_C);
-
-        mockery.checking(new Expectations() {{
-            allowing(session).getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY); will(returnValue(mailboxSession));
-            allowing(mailboxSession).getPathDelimiter(); will(returnValue(HIERARCHY_DELIMITER));
-            oneOf(responder).respond(with(
-                    equal(new LSubResponse("", true, HIERARCHY_DELIMITER))));
-        }});
-
-        expectOk();
-
-        LsubRequest request = new LsubRequest(command, "", "", TAG);
-        processor.doProcessRequest(request, session, TAG, command, responderImpl);
-
-    }
-
-    @Test
     public void testShouldRespondToRegexWithSubscribedMailboxes()
             throws Exception {
         subscriptions.add(MAILBOX_A);


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


[03/15] james-project git commit: PROTOCOLS-117 General fixes: Solve confusion between MessageManager "message" search and MailboxManager "mailbox" search

Posted by ad...@apache.org.
PROTOCOLS-117 General fixes: Solve confusion between MessageManager "message" search and MailboxManager "mailbox" search


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

Branch: refs/heads/master
Commit: f79e6f18caa52b28ca49fcf79160c7dae5e5de11
Parents: 99c1819
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 15:23:48 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 09:34:03 2017 +0700

----------------------------------------------------------------------
 .../store/AbstractCombinationManagerTest.java   | 34 +++++++++-----------
 1 file changed, 15 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f79e6f18/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
index f4f4c99..fc67989 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
@@ -47,8 +47,6 @@ import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.SearchQuery;
-import org.apache.james.mailbox.model.search.MailboxQuery;
-import org.apache.james.mailbox.model.search.PrefixedWildcard;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.junit.Test;
 
@@ -112,37 +110,35 @@ public abstract class AbstractCombinationManagerTest {
     }
 
     @Test
-    public void searchFromMailboxManagerShouldReturnMessagesUsingSetInMailboxesFromMessageIdManagerWhenSearchByMailboxQueryWithMailboxPath() throws Exception {
+    public void searchFromMessageManagerShouldReturnMessagesUsingSetInMailboxesFromMessageIdManagerWhenSearchByMailboxQueryWithMailboxPath() throws Exception {
         SearchQuery query = new SearchQuery();
         query.andCriteria(SearchQuery.all());
 
-        MailboxQuery mailboxQuery = MailboxQuery.privateMailboxesBuilder(session)
-            .expression(new PrefixedWildcard(MailboxFixture.INBOX_ALICE.getName()))
-            .build();
         MessageId messageId = messageManager1.appendMessage(new ByteArrayInputStream(MAIL_CONTENT), new Date(), session, false, FLAGS).getMessageId();
 
-        messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
+        messageIdManager.setInMailboxes(messageId,
+            ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
+
+        MessageUid uidInMailbox2 = messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session)
+            .get(0)
+            .getUid();
 
-        assertThat(mailboxManager.search(mailboxQuery, session)).hasSize(1)
-            .extractingResultOf("getId")
-            .containsOnly(mailbox1.getMailboxId());
+        assertThat(messageManager2.search(query, session)).hasSize(1)
+            .containsExactly(uidInMailbox2);
     }
 
     @Test
-    public void searchFromMailboxManagerShouldReturnMessagesUsingSetInMailboxesFromMessageIdManagerWhenSearchByMailboxQueryWithUsername() throws Exception {
+    public void searchFromMessageManagerShouldReturnMessagesUsingSetInMailboxesFromMessageIdManagerWhenSearchByMailboxQueryWithUsername() throws Exception {
         SearchQuery query = new SearchQuery();
         query.andCriteria(SearchQuery.all());
 
-        MailboxQuery mailboxQuery = MailboxQuery.privateMailboxesBuilder(session)
-            .matchesAllMailboxNames()
-            .build();
-        MessageId messageId = messageManager1.appendMessage(new ByteArrayInputStream(MAIL_CONTENT), new Date(), session, false, FLAGS).getMessageId();
+        ComposedMessageId composedMessageId = messageManager1.appendMessage(new ByteArrayInputStream(MAIL_CONTENT), new Date(), session, false, FLAGS);
 
-        messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
+        messageIdManager.setInMailboxes(composedMessageId.getMessageId(),
+            ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
 
-        assertThat(mailboxManager.search(mailboxQuery, session)).hasSize(2)
-            .extractingResultOf("getId")
-            .containsOnly(mailbox1.getMailboxId(), mailbox2.getMailboxId());
+        assertThat(messageManager1.search(query, session)).hasSize(1)
+            .containsExactly(composedMessageId.getUid());
     }
 
     @Test


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


[11/15] james-project git commit: PROTOCOLS-117 Bonus: Remove unused MPT class (for subscription)

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Remove unused MPT class (for subscription)


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

Branch: refs/heads/master
Commit: e4b2b377056df62a6f7bc54a6333b6c2d0ff013e
Parents: c2669b8
Author: benwa <bt...@linagora.com>
Authored: Thu Nov 2 14:34:14 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../mpt/user/InMemoryMailboxUserManager.java    | 101 -------------------
 .../org/apache/james/mpt/user/MailboxUser.java  |  77 --------------
 2 files changed, 178 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e4b2b377/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/InMemoryMailboxUserManager.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/InMemoryMailboxUserManager.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/InMemoryMailboxUserManager.java
deleted file mode 100644
index 6fda45e..0000000
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/InMemoryMailboxUserManager.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************
- * 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.mpt.user;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.SubscriptionManager;
-import org.apache.james.mailbox.exception.SubscriptionException;
-
-/**
- * Stores users in memory.
- */
-public class InMemoryMailboxUserManager implements SubscriptionManager {
-
-    private final Map<String, MailboxUser> users;
-
-    public InMemoryMailboxUserManager() {
-        this.users = new HashMap<>();
-    }
-
-    public boolean isAuthentic(String userid, CharSequence password) {
-        MailboxUser user = (MailboxUser) users.get(userid);
-        final boolean result;
-        if (user == null) {
-            result = false;
-        } else {
-            result = user.isPassword(password);
-        }
-        return result;
-    }
-
-    public void subscribe(MailboxSession session, String mailbox)
-            throws SubscriptionException {
-        MailboxSession.User u = session.getUser();
-        MailboxUser user = (MailboxUser) users.get(u.getUserName());
-        if (user == null) {
-            user = new MailboxUser(u.getUserName());
-            users.put(u.getUserName(), user);
-        }
-        user.addSubscription(mailbox);
-    }
-
-    public Collection<String> subscriptions(org.apache.james.mailbox.MailboxSession session) throws SubscriptionException {
-        MailboxSession.User u = session.getUser();
-        MailboxUser user = (MailboxUser) users.get(u.getUserName());
-        if (user == null) {
-            user = new MailboxUser(u.getUserName());
-            users.put(u.getUserName(), user);
-        }
-        return user.getSubscriptions();
-    }
-
-    public void unsubscribe(org.apache.james.mailbox.MailboxSession session, String mailbox)
-            throws SubscriptionException {
-        MailboxSession.User u = session.getUser();
-        MailboxUser user = (MailboxUser) users.get(u.getUserName());
-        if (user == null) {
-            user = new MailboxUser(u.getUserName());
-            users.put(u.getUserName(), user);
-        }
-        user.removeSubscription(mailbox);
-    }
-
-    public void addUser(String userid, CharSequence password) {
-        MailboxUser user = (MailboxUser) users.get(userid);
-        if (user == null) {
-            user = new MailboxUser(userid);
-            users.put(userid, user);
-        }
-        user.setPassword(password);
-    }
-
-    public void endProcessingRequest(MailboxSession session) {
-        
-    }
-
-    public void startProcessingRequest(MailboxSession session) {
-        
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/e4b2b377/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/MailboxUser.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/MailboxUser.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/MailboxUser.java
deleted file mode 100644
index 05f9c89..0000000
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/user/MailboxUser.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************
- * 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.mpt.user;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-class MailboxUser {
-    private final String userName;
-
-    private CharSequence password;
-
-    private final Set<String> subscriptions;
-
-    public MailboxUser(String userName) {
-        this.userName = userName;
-        this.subscriptions = new HashSet<>();
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-    
-    public void setPassword(CharSequence password) {
-        this.password = password;
-    }
-
-    public Collection<String> getSubscriptions() {
-        return Collections.unmodifiableSet(subscriptions);
-    }
-
-    public void addSubscription(String subscription) {
-        this.subscriptions.add(subscription);
-    }
-
-    public void removeSubscription(String mailbox) {
-        this.subscriptions.remove(mailbox);
-    }
-
-    public boolean isPassword(CharSequence password) {
-        final boolean result;
-        if (password == null) {
-            result = this.password == null;
-        } else if (this.password == null) {
-            result = false;            
-        } else if (this.password.length() == password.length()) {
-            for (int i=0;i<password.length();i++) {
-                if (password.charAt(i) != this.password.charAt(i)) {
-                    return false;
-                }
-            }
-            result = true;
-        } else {
-            result = false;
-        }
-        return result;
-    }
-}


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


[12/15] james-project git commit: PROTOCOLS-117 Bonus: Remove another "Mock like" MailboxSession implementation

Posted by ad...@apache.org.
PROTOCOLS-117 Bonus: Remove another "Mock like" MailboxSession implementation


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

Branch: refs/heads/master
Commit: b99318ece3bc359ea76e3e2316ab31116a2a5750
Parents: cc5b9f8
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 1 13:55:35 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:48:40 2017 +0700

----------------------------------------------------------------------
 .../james/mailbox/mock/MockMailboxSession.java  | 34 ++++++++++----------
 .../AbstractMessageIdManagerStorageTest.java    |  3 +-
 .../store/MailboxEventDispatcherTest.java       | 12 ++-----
 .../store/StoreMessageIdManagerTestSystem.java  |  3 +-
 4 files changed, 22 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b99318ec/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
index 1035687..89b41dc 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
@@ -28,27 +28,29 @@ import java.util.Random;
 
 import org.apache.james.mailbox.MailboxSession;
 
-public class MockMailboxSession implements MailboxSession{
-
+public class MockMailboxSession implements MailboxSession {
     private final User user;
-    private boolean close;
     private final Map<Object, Object> attrs = new HashMap<>();
     private final static Random RANDOM = new Random();
-
-    private final long sessionId = RANDOM.nextLong();
-    private SessionType type = SessionType.User;
+    private final long sessionId;
+    private final SessionType type;
+    private boolean open;
     
-    public MockMailboxSession(final String username) {
+    public MockMailboxSession(String username) {
+        this(username, RANDOM.nextLong());
+    }
+
+    public MockMailboxSession(String username, long sessionId) {
         this.user = new User() {
-            
+
             public String getUserName() {
                 return username;
             }
-            
+
             public String getPassword() {
                 return null;
             }
-            
+
             public List<Locale> getLocalePreferences() {
                 return new ArrayList<>();
             }
@@ -61,14 +63,13 @@ public class MockMailboxSession implements MailboxSession{
                 return username.equalsIgnoreCase(other);
             }
         };
+        this.sessionId = sessionId;
+        this.open = true;
+        type = SessionType.User;
     }
 
-    public MockMailboxSession(final String username, SessionType type) {
-        this(username);
-        this.type = type;
-    }
     public void close() {
-        this.close = true;
+        this.open = false;
     }
 
     public Map<Object, Object> getAttributes() {
@@ -96,7 +97,7 @@ public class MockMailboxSession implements MailboxSession{
     }
 
     public boolean isOpen() {
-        return close == false;
+        return open;
     }
 
 	public char getPathDelimiter() {
@@ -106,5 +107,4 @@ public class MockMailboxSession implements MailboxSession{
     public SessionType getType() {
         return type;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b99318ec/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 4a8c069..1e64270 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -30,7 +30,6 @@ import java.util.function.Predicate;
 import javax.mail.Flags;
 
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.SessionType;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
@@ -76,7 +75,7 @@ public abstract class AbstractMessageIdManagerStorageTest {
     public void setUp() throws Exception {
         aliceSession = new MockMailboxSession(MailboxFixture.ALICE);
         bobSession = new MockMailboxSession(MailboxFixture.BOB);
-        systemSession = new MockMailboxSession("systemuser", SessionType.System);
+        systemSession = new MockMailboxSession("systemuser");
         testingData = createTestingData();
         messageIdManager = testingData.getMessageIdManager();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/b99318ec/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
index 9f45c77..48047b4 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MailboxEventDispatcherTest.java
@@ -32,7 +32,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
@@ -64,12 +63,7 @@ public class MailboxEventDispatcherTest {
     private MessageResult result;
     private Mailbox mailbox;
 
-    private MailboxSession session = new MockMailboxSession("test") {
-        @Override
-        public long getSessionId() {
-            return sessionId;
-        }
-    };
+    private MailboxSession session = new MockMailboxSession("test", sessionId);
 
     @Before
     public void setUp() throws Exception {
@@ -370,7 +364,7 @@ public class MailboxEventDispatcherTest {
 
     @Test
     public void expungedShouldNotFireEventWhenEmptyMap() {
-        dispatcher.expunged(session, ImmutableMap.<MessageUid, MessageMetaData> of(), mailbox);
+        dispatcher.expunged(session, ImmutableMap.of(), mailbox);
         assertThat(collector.getEvents()).isEmpty();
     }
 
@@ -383,7 +377,7 @@ public class MailboxEventDispatcherTest {
                 .newFlags(new Flags(Flag.ANSWERED))
                 .build();
         
-        dispatcher.flagsUpdated(session, ImmutableList.<MessageUid> of(), mailbox, ImmutableList.of(updatedFlags));
+        dispatcher.flagsUpdated(session, ImmutableList.of(), mailbox, ImmutableList.of(updatedFlags));
         assertThat(collector.getEvents()).isEmpty();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b99318ec/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMessageIdManagerTestSystem.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMessageIdManagerTestSystem.java
index 232ef04..9798ae7 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMessageIdManagerTestSystem.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMessageIdManagerTestSystem.java
@@ -31,7 +31,6 @@ import javax.mail.Flags;
 
 import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MailboxSession.SessionType;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -58,7 +57,7 @@ public class StoreMessageIdManagerTestSystem extends MessageIdManagerTestSystem
 
         this.messageIdFactory = messageIdFactory;
         this.mapperFactory = mapperFactory;
-        this.defaultMailboxSession = new MockMailboxSession("user", SessionType.System);
+        this.defaultMailboxSession = new MockMailboxSession("user");
     }
 
     @Override


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