You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2015/09/22 13:50:55 UTC

svn commit: r1704587 [1/2] - in /james/mailbox/trunk: api/src/main/java/org/apache/james/mailbox/ api/src/test/java/org/apache/james/mailbox/ api/src/test/java/org/apache/james/mailbox/model/ cassandra/src/main/java/org/apache/james/mailbox/cassandra/u...

Author: btellier
Date: Tue Sep 22 11:50:44 2015
New Revision: 1704587

URL: http://svn.apache.org/viewvc?rev=1704587&view=rev
Log:
MAILBOX-248 Kill around 150 eclipse warning -- contributed by Matthieu Baechler

Modified:
    james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExpressionTest.java
    james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java
    james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
    james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java
    james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
    james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
    james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
    james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseUtilsTest.java
    james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapperTest.java
    james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/user/HBaseSubscriptionMapperTest.java
    james/mailbox/trunk/jcr/pom.xml
    james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
    james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
    james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
    james/mailbox/trunk/jpa/pom.xml
    james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMessage.java
    james/mailbox/trunk/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
    james/mailbox/trunk/maildir/pom.xml
    james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMessageNameTest.java
    james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java
    james/mailbox/trunk/memory/src/test/java/org/apache/james/mailbox/inmemory/InMemoryMailboxMapperTest.java
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractLockingModSeqProvider.java
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractLockingUidProvider.java
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearcher.java
    james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/streaming/PartContentBuilder.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/PartContentBuilderMultipartAlternativeTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/StoreMessageResultIteratorTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMailboxMapperTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssert.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessageTest.java
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/streaming/BodyOffsetInputStreamTest.java
    james/mailbox/trunk/tool/pom.xml
    james/mailbox/trunk/tool/src/main/java/org/apache/james/mailbox/jpa/migrator/command/IMAP168JpaMigrateCommand.java
    james/mailbox/trunk/tool/src/main/java/org/apache/james/mailbox/jpa/migrator/command/IMAP180JpaMigrateCommand.java
    james/mailbox/trunk/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
    james/mailbox/trunk/tool/src/test/java/org/apache/james/mailbox/jpa/migrator/JpaMigratorTest.java

Modified: james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java (original)
+++ james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java Tue Sep 22 11:50:44 2015
@@ -29,18 +29,12 @@ import javax.mail.Flags;
 
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.UnsupportedCriteriaException;
-import org.apache.james.mailbox.exception.UnsupportedRightException;
 import org.apache.james.mailbox.model.MailboxACL;
-import org.apache.james.mailbox.model.MailboxACL.EditMode;
-import org.apache.james.mailbox.model.MailboxACL.MailboxACLEntryKey;
-import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 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.SearchQuery;
-import org.apache.james.mailbox.model.SimpleMailboxACL;
-import org.apache.james.mailbox.model.MailboxACL.MailboxACLRight;
-import org.apache.james.mailbox.model.MessageResult.FetchGroup;
 
 /**
  * Interface which represent a Mailbox

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractMailboxManagerTest.java Tue Sep 22 11:50:44 2015
@@ -18,19 +18,21 @@
  ****************************************************************/
 package org.apache.james.mailbox;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 import java.io.ByteArrayInputStream;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 
 import javax.mail.Flags;
 
-import junit.framework.Assert;
-
 import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.mock.MockMailboxManager;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.junit.After;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
@@ -53,101 +55,160 @@ public abstract class AbstractMailboxMan
      * by the mailbox implementations.
      */
     protected MailboxManager mailboxManager;
+    private MailboxSession session;
     
-    @Test
-    public void testBasicOperations() throws BadCredentialsException, MailboxException, UnsupportedEncodingException {
-
+    @After
+    public void teardown() throws MailboxException {
+        getMailboxManager().logout(session, false);
+        getMailboxManager().endProcessingRequest(session);
+    }
+    
+    @Test 
+    public void createUser1SystemSessionShouldReturnValidSession() throws UnsupportedEncodingException, MailboxException {
         setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
         
-        MailboxSession session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
-        Assert.assertEquals(USER_1, session.getUser().getUserName());
-        
+        assertThat(session.getUser().getUserName()).isEqualTo(USER_1);
+    }
+
+    @Test
+    public void user1ShouldNotHaveAnInbox() throws UnsupportedEncodingException, MailboxException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
         getMailboxManager().startProcessingRequest(session);
         
         MailboxPath inbox = MailboxPath.inbox(session);
-        Assert.assertFalse(getMailboxManager().mailboxExists(inbox, session));
+        assertThat(getMailboxManager().mailboxExists(inbox, session)).isFalse();
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToCreateInbox() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+     
+        MailboxPath inbox = MailboxPath.inbox(session);
+        getMailboxManager().createMailbox(inbox, session);
         
+        assertThat(getMailboxManager().mailboxExists(inbox, session)).isTrue();
+    }
+
+    @Test(expected=MailboxException.class)
+    public void user1ShouldNotBeAbleToCreateInboxTwice() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+        MailboxPath inbox = MailboxPath.inbox(session);
+        getMailboxManager().createMailbox(inbox, session);
+        getMailboxManager().createMailbox(inbox, session);
+    }
+
+    @Test
+    public void user1ShouldNotHaveTestSubmailbox() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+
+        MailboxPath inbox = MailboxPath.inbox(session);
         getMailboxManager().createMailbox(inbox, session);
-        Assert.assertTrue(getMailboxManager().mailboxExists(inbox, session));
         
-        try {
-            getMailboxManager().createMailbox(inbox, session);
-            Assert.fail();
-        } catch (MailboxException e) {
-            // mailbox already exists!
-        }
+        assertThat(getMailboxManager().mailboxExists(new MailboxPath(inbox, "INBOX.Test"), session)).isFalse();
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToCreateTestSubmailbox() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+        MailboxPath inbox = MailboxPath.inbox(session);
+        getMailboxManager().createMailbox(inbox, session);
         
         MailboxPath inboxSubMailbox = new MailboxPath(inbox, "INBOX.Test");
-        Assert.assertFalse(getMailboxManager().mailboxExists(inboxSubMailbox, session));
+        getMailboxManager().createMailbox(inboxSubMailbox, session);
         
+        assertThat(getMailboxManager().mailboxExists(inboxSubMailbox, session)).isTrue();
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToDeleteInbox() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+     
+        MailboxPath inbox = MailboxPath.inbox(session);
+        getMailboxManager().createMailbox(inbox, session);
+        MailboxPath inboxSubMailbox = new MailboxPath(inbox, "INBOX.Test");
         getMailboxManager().createMailbox(inboxSubMailbox, session);
-        Assert.assertTrue(getMailboxManager().mailboxExists(inboxSubMailbox, session));
         
         getMailboxManager().deleteMailbox(inbox, session);
-        Assert.assertFalse(getMailboxManager().mailboxExists(inbox, session));
         
-        Assert.assertTrue(getMailboxManager().mailboxExists(inboxSubMailbox, session));
+        assertThat(getMailboxManager().mailboxExists(inbox, session)).isFalse();
+        assertThat(getMailboxManager().mailboxExists(inboxSubMailbox, session)).isTrue();
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToDeleteSubmailbox() throws MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
+     
+        MailboxPath inbox = MailboxPath.inbox(session);
+        getMailboxManager().createMailbox(inbox, session);
+        MailboxPath inboxSubMailbox = new MailboxPath(inbox, "INBOX.Test");
+        getMailboxManager().createMailbox(inboxSubMailbox, session);
         
         getMailboxManager().deleteMailbox(inboxSubMailbox, session);
-        Assert.assertFalse(getMailboxManager().mailboxExists(inboxSubMailbox, session));
+        
+        assertThat(getMailboxManager().mailboxExists(inbox, session)).isTrue();
+        assertThat(getMailboxManager().mailboxExists(inboxSubMailbox, session)).isFalse();
+    }
+
+    @Test
+    public void closingSessionShouldWork() throws BadCredentialsException, MailboxException, UnsupportedEncodingException {
+        setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        getMailboxManager().startProcessingRequest(session);
 
         getMailboxManager().logout(session, false);
         getMailboxManager().endProcessingRequest(session);
-
-        Assert.assertFalse(session.isOpen());
-
+        
+        assertThat(session.isOpen()).isFalse();
     }
 
-    /**
-     * Create some INBOXes and their sub mailboxes and assert list() method.
-     * 
-     * @throws UnsupportedEncodingException 
-     * @throws MailboxException 
-     */
     @Test
-    public void testList() throws MailboxException, UnsupportedEncodingException {
-
+    public void listShouldReturnMailboxes() throws MailboxException, UnsupportedEncodingException {
         setMailboxManager(new MockMailboxManager(getMailboxManager()).getMockMailboxManager());
+        session = getMailboxManager().createSystemSession("manager", LoggerFactory.getLogger("testList"));
+        getMailboxManager().startProcessingRequest(session);
+        
+        assertThat(getMailboxManager().list(session)).hasSize(MockMailboxManager.EXPECTED_MAILBOXES_COUNT);
+    }
 
-        MailboxSession mailboxSession = getMailboxManager().createSystemSession("manager", LoggerFactory.getLogger("testList"));
-        getMailboxManager().startProcessingRequest(mailboxSession);
-        Assert.assertEquals(MockMailboxManager.EXPECTED_MAILBOXES_COUNT, getMailboxManager().list(mailboxSession).size());
-
+    @Test
+    public void user2ShouldBeAbleToCreateRootlessFolder() throws BadCredentialsException, MailboxException {
+        session = getMailboxManager().createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        MailboxPath trash = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "Trash");
+        getMailboxManager().createMailbox(trash, session);
+        
+        assertThat(getMailboxManager().mailboxExists(trash, session)).isTrue();
     }
     
-    
     @Test
-    public void testCreateSubFolderDirectly() throws BadCredentialsException, MailboxException { 
-
-        MailboxSession session = getMailboxManager().createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
-        getMailboxManager().createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "Trash"), session);
-        getMailboxManager().createMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "INBOX.testfolder"), session);
+    public void user2ShouldBeAbleToCreateNestedFoldersWithoutTheirParents() throws BadCredentialsException, MailboxException {
+        session = getMailboxManager().createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        MailboxPath nestedFolder = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "INBOX.testfolder");
+        getMailboxManager().createMailbox(nestedFolder, session);
         
+        assertThat(getMailboxManager().mailboxExists(nestedFolder, session)).isTrue();
         getMailboxManager().getMailbox(MailboxPath.inbox(session), session).appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), session, false, new Flags());
-
     }
-
-    /**
-     * Implement this method to create the mailboxManager.
-     * 
-     * @return
-     * @throws MailboxException 
-     */
-    protected abstract void createMailboxManager() throws MailboxException;
     
-    /**
-     * Setter to inject the mailboxManager.
-     */
+    protected abstract void createMailboxManager() throws MailboxException, IOException;
+    
     protected void setMailboxManager(MailboxManager mailboxManager) {
         this.mailboxManager = mailboxManager;
     }
 
-    /**
-     * Accessor to the mailboxManager.
-     * 
-     * @return the mailboxManager instance.
-     * @throws IllegalStateException in case of null mailboxManager
-     */
     protected MailboxManager getMailboxManager() {
         if (mailboxManager == null) {
             throw new IllegalStateException("Please setMailboxManager with a non null value before requesting getMailboxManager()");

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/AbstractSubscriptionManagerTest.java Tue Sep 22 11:50:44 2015
@@ -18,10 +18,12 @@
  ****************************************************************/
 package org.apache.james.mailbox;
 
-import java.util.Collection;
+import static org.assertj.core.api.Assertions.assertThat;
 
+import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.mailbox.mock.MockMailboxSession;
-import org.junit.Assert;
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -34,43 +36,70 @@ public abstract class AbstractSubscripti
     private final static String USER1 = "test";
     private final static String MAILBOX1 = "test1";
     private final static String MAILBOX2 = "test2";
+    private SubscriptionManager manager;
+    private MailboxSession session;
 
     public abstract SubscriptionManager createSubscriptionManager();
+
+    @Before
+    public void setup() {
+        manager = createSubscriptionManager();
+        session = new MockMailboxSession(USER1);
+        manager.startProcessingRequest(session);
+    }
+    
+    @After
+    public void teardown() {
+        manager.endProcessingRequest(session);
+    }
     
     @Test
-    public void testSubscriptionManager() throws Exception {
-        SubscriptionManager manager = createSubscriptionManager();
-        MailboxSession session = new MockMailboxSession(USER1);
-        manager.startProcessingRequest(session);
-        
-        Assert.assertTrue(manager.subscriptions(session).isEmpty());
-        
+    public void user1ShouldNotHaveAnySubscriptionByDefault() throws SubscriptionException {
+        assertThat(manager.subscriptions(session)).isEmpty();
+    }
+    
+    
+    @Test
+    public void user1ShouldBeAbleToSubscribeOneMailbox() throws SubscriptionException {
+        manager.subscribe(session, MAILBOX1);
+
+        assertThat(manager.subscriptions(session)).containsExactly(MAILBOX1);
+    }
+
+    @Test
+    public void subscribeShouldBeIdempotent() throws SubscriptionException {
         manager.subscribe(session, MAILBOX1);
-        Assert.assertEquals(MAILBOX1, manager.subscriptions(session).iterator().next());
-        Assert.assertEquals(1, manager.subscriptions(session).size());
-        
-        
         manager.subscribe(session, MAILBOX1);
-        Assert.assertEquals(MAILBOX1, manager.subscriptions(session).iterator().next());
-        Assert.assertEquals(1, manager.subscriptions(session).size());
         
+        assertThat(manager.subscriptions(session)).containsExactly(MAILBOX1);
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToSubscribeTwoMailbox() throws SubscriptionException {
+        manager.subscribe(session, MAILBOX1);
         manager.subscribe(session, MAILBOX2);
-        Collection<String> col = manager.subscriptions(session);
-      
-        Assert.assertTrue(col.contains(MAILBOX2));
-        Assert.assertTrue(col.contains(MAILBOX1));
-        Assert.assertEquals(2, col.size());
-        
         
+        assertThat(manager.subscriptions(session)).containsExactly(MAILBOX1, MAILBOX2);
+    }
+    
+    @Test
+    public void user1ShouldBeAbleToUnsubscribeOneMailbox() throws SubscriptionException {
+        manager.subscribe(session, MAILBOX1);
+        manager.subscribe(session, MAILBOX2);
+
         manager.unsubscribe(session, MAILBOX1);
-        Assert.assertEquals(MAILBOX2, manager.subscriptions(session).iterator().next());
-        Assert.assertEquals(1, manager.subscriptions(session).size());
         
+        assertThat(manager.subscriptions(session)).containsExactly(MAILBOX2);
+    }
+    
+    @Test
+    public void unsubscribeShouldBeIdempotent() throws SubscriptionException {
+        manager.subscribe(session, MAILBOX1);
+        manager.subscribe(session, MAILBOX2);
+        manager.unsubscribe(session, MAILBOX1);
         manager.unsubscribe(session, MAILBOX1);
-        Assert.assertEquals(MAILBOX2, manager.subscriptions(session).iterator().next());
-        Assert.assertEquals(1, manager.subscriptions(session).size());
-        
         
-        manager.endProcessingRequest(session);
+        assertThat(manager.subscriptions(session)).containsExactly(MAILBOX2);
     }
+    
 }

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExceptionTest.java Tue Sep 22 11:50:44 2015
@@ -18,30 +18,30 @@
  ****************************************************************/
 package org.apache.james.mailbox;
 
-import junit.framework.Assert;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.mailbox.exception.MailboxException;
 import org.junit.Test;
-
 /**
  * Ensure that {@link MailboxException} construction is correct.
  */
 public class MailboxExceptionTest {
     
     private static final String EXCEPTION_MESSAGE = "this is an exception message";
-    
-    private static final Exception EXCEPTION_CAUSE = new Exception("this is a cause");
+    private static final String CAUSE_MESSAGE = "this is a cause";
+    private static final Exception EXCEPTION_CAUSE = new Exception(CAUSE_MESSAGE);
     
     @Test
     public void testMailboxExceptionMessage() {
         MailboxException mbe = new MailboxException(EXCEPTION_MESSAGE);
-        Assert.assertEquals(EXCEPTION_MESSAGE, mbe.getMessage());
+        assertThat(mbe).hasMessage(EXCEPTION_MESSAGE);
     }
 
     @Test
     public void testMailboxExceptionCause() {
         MailboxException mbe = new MailboxException(EXCEPTION_MESSAGE, EXCEPTION_CAUSE);
-        Assert.assertEquals(EXCEPTION_MESSAGE, mbe.getMessage());
+        assertThat(mbe).hasMessage(EXCEPTION_MESSAGE).hasCauseExactlyInstanceOf(Exception.class);
+        assertThat(mbe.getCause()).hasMessage(CAUSE_MESSAGE);
     }
 
 }

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExpressionTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExpressionTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExpressionTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/MailboxExpressionTest.java Tue Sep 22 11:50:44 2015
@@ -19,7 +19,9 @@
 
 package org.apache.james.mailbox;
 
-import static org.junit.Assert.*;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
@@ -55,40 +57,40 @@ public class MailboxExpressionTest {
     }
 
     @Test
-    public void testCombinedNameEmptyPart() throws Exception {
+    public void combinedNameWithNoExpressionShouldReturnBase() throws Exception {
         MailboxQuery expression = new MailboxQuery(BASE_PATH, "", '.');
-        assertEquals(BASE, expression.getCombinedName());
+        assertThat(expression.getCombinedName()).isEqualTo(BASE);
     }
 
     @Test
-    public void testNullCombinedName() throws Exception {
+    public void combinedNameOnNullShouldBeEmpty() throws Exception {
         MailboxQuery expression = new MailboxQuery(new MailboxPath(null, null, null), null, '.');
-        assertNotNull(expression.getCombinedName());
+        assertThat(expression.getCombinedName()).isEmpty();
     }
 
     @Test
-    public void testSimpleCombinedName() throws Exception {
-        MailboxQuery expression = create(PART);
-        assertEquals(BASE + "." + PART, expression.getCombinedName());
+    public void combinedNameShouldContainBaseAndPart() throws Exception {
+        MailboxQuery expression = new MailboxQuery(BASE_PATH, PART, '.');
+        assertThat(expression.getCombinedName()).isEqualTo(BASE + "." + PART);
     }
 
     @Test
-    public void testCombinedNamePartStartsWithDelimiter() throws Exception {
-        MailboxQuery expression = create("." + PART);
-        assertEquals(BASE + "." + PART, expression.getCombinedName());
+    public void combinedNameOnPartStartingWithDelimiterShouldIgnoreDelimiter() throws Exception {
+        MailboxQuery expression = new MailboxQuery(BASE_PATH, "." + PART, '.');
+        assertThat(expression.getCombinedName()).isEqualTo(BASE + "." + PART);
     }
 
     @Test
-    public void testCombinedNameBaseEndsWithDelimiter() throws Exception {
+    public void combinedNameOnBaseEndingWithDelimiterShouldIgnoreDelimiter() throws Exception {
         MailboxQuery expression = new MailboxQuery(new MailboxPath(null, null, BASE + '.'), PART, '.');
-        assertEquals(BASE + "." + PART, expression.getCombinedName());
+        assertThat(expression.getCombinedName()).isEqualTo(BASE + "." + PART);
     }
 
     @Test
-    public void testCombinedNameBaseEndsWithDelimiterPartStarts()
+    public void combinedNameShouldIgnoreAllDelimiters()
             throws Exception {
         MailboxQuery expression = new MailboxQuery(new MailboxPath(null, null, BASE + '.'), '.' + PART, '.');
-        assertEquals(BASE + "." + PART, expression.getCombinedName());
+        assertThat(expression.getCombinedName()).isEqualTo(BASE + "." + PART);
     }
 
     @Test

Modified: james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java (original)
+++ james/mailbox/trunk/api/src/test/java/org/apache/james/mailbox/model/MessageRangeTest.java Tue Sep 22 11:50:44 2015
@@ -1,113 +1,77 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.mailbox.model;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.junit.Test;
-
-public class MessageRangeTest {
-
-    @Test
-    public void testToRanges() {
-        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L,2L,3L,5L,6L,9L));
-        assertEquals(3, ranges.size());
-        checkRange(1, 3, ranges.get(0));
-        checkRange(5, 6, ranges.get(1));
-        checkRange(9, 9, ranges.get(2));
-
-    }
-    
-    @Test
-    public void testOneUidToRange() {
-        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L));
-        assertEquals(1, ranges.size());
-        checkRange(1, 1, ranges.get(0));
-    }
-    
-    // Test for MAILBOX-56
-    @Test
-    public void testTwoSeqUidToRange() {
-        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L,2L));
-        assertEquals(1, ranges.size());
-        checkRange(1, 2, ranges.get(0));
-
-    }
-    
-    
-    private void checkRange(long from, long to, MessageRange range) {
-        assertEquals(from, range.getUidFrom());
-        assertEquals(to, range.getUidTo());
-    }
-    
-    @Test
-    public void testSplitOne() {
-        MessageRange one = MessageRange.one(1);
-        List<MessageRange> ranges = one.split(2);
-        assertEquals(1, ranges.size());
-        checkRange(1, 1, ranges.get(0));
-        assertEquals(MessageRange.Type.ONE, ranges.get(0).getType());
-    }
-    
-    @Test
-    public void testSplitFrom() {
-        MessageRange from = MessageRange.from(1);
-        List<MessageRange> ranges = from.split(2);
-        assertEquals(1, ranges.size());
-        checkRange(1, MessageRange.MAX_UID, ranges.get(0));
-        assertEquals(MessageRange.Type.FROM, ranges.get(0).getType());
-    }
-    
-    @Test
-    public void testSplitRange() {
-        MessageRange range = MessageRange.range(1,10);
-        List<MessageRange> ranges = range.split(3);
-        assertEquals(4, ranges.size());
-        checkRange(1, 3, ranges.get(0));
-        assertEquals(MessageRange.Type.RANGE, ranges.get(0).getType());
-        checkRange(4, 6, ranges.get(1));
-        assertEquals(MessageRange.Type.RANGE, ranges.get(1).getType());
-        checkRange(7, 9, ranges.get(2));
-        assertEquals(MessageRange.Type.RANGE, ranges.get(2).getType());
-        checkRange(10, 10, ranges.get(3));
-        assertEquals(MessageRange.Type.ONE, ranges.get(3).getType());
-    }
-    
-    @Test
-    public void fromShouldSetTypeToFrom() {
-    	MessageRange messageRange = MessageRange.from(10);
-    	assertEquals(messageRange.getType(), MessageRange.Type.FROM);
-    }
-    
-    @Test
-    public void fromShouldSetUidFromToGivenValue() {
-    	int from = 10;
-		MessageRange messageRange = MessageRange.from(from);
-    	assertEquals(messageRange.getUidFrom(), from);
-    }
-    
-    @Test
-    public void fromShouldSetUidToToMax() {
-    	MessageRange messageRange = MessageRange.from(10);
-    	assertEquals(messageRange.getUidTo(), MessageRange.MAX_UID);
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.mailbox.model;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.james.mailbox.model.MessageRange;
+import org.junit.Test;
+
+public class MessageRangeTest {
+
+    @Test
+    public void givenSomeNumbersToRangeShouldReturnThreeRanges() {
+        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L,2L,3L,5L,6L,9L));
+        assertThat(ranges).containsExactly(
+                MessageRange.range(1, 3), 
+                MessageRange.range(5, 6), 
+                MessageRange.one(9));
+    }
+    
+    @Test
+    public void givenASingleNumberToRangeShouldReturnOneRange() {
+        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L));
+        assertThat(ranges).containsExactly(MessageRange.one(1));
+    }
+    
+    // Test for MAILBOX-56
+    @Test
+    public void testTwoSeqUidToRange() {
+        List<MessageRange> ranges = MessageRange.toRanges(Arrays.asList(1L,2L));
+        assertThat(ranges).containsExactly(MessageRange.range(1, 2));
+    }
+    
+    @Test
+    public void splitASingletonRangeShouldReturnASingleRange() {
+        MessageRange one = MessageRange.one(1);
+        List<MessageRange> ranges = one.split(2);
+        assertThat(ranges).containsExactly(MessageRange.one(1));
+    }
+
+    @Test
+    public void splitUnboundedRangeShouldReturnTheSameRange() {
+        MessageRange from = MessageRange.from(1);
+        List<MessageRange> ranges = from.split(2);
+        assertThat(ranges).containsExactly(MessageRange.from(1));
+    }
+    
+    @Test
+    public void splitTenElementsRangeShouldReturn4Ranges() {
+        MessageRange range = MessageRange.range(1,10);
+        List<MessageRange> ranges = range.split(3);
+        assertThat(ranges).containsExactly(
+                MessageRange.range(1, 3), 
+                MessageRange.range(4, 6), 
+                MessageRange.range(7, 9), 
+                MessageRange.one(10));
+    }
+}

Modified: james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java (original)
+++ james/mailbox/trunk/cassandra/src/main/java/org/apache/james/mailbox/cassandra/user/CassandraSubscriptionMapper.java Tue Sep 22 11:50:44 2015
@@ -40,11 +40,7 @@ import org.apache.james.mailbox.store.us
 import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.core.Row;
 import com.datastax.driver.core.Session;
-import com.datastax.driver.core.querybuilder.Insert;
 import com.datastax.driver.core.querybuilder.QueryBuilder;
-import com.datastax.driver.core.querybuilder.Select;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
 
 public class CassandraSubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper {
     private Session session;

Modified: james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java (original)
+++ james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxManager.java Tue Sep 22 11:50:44 2015
@@ -18,8 +18,6 @@
  ****************************************************************/
 package org.apache.james.mailbox.hbase;
 
-import java.util.UUID;
-
 import org.apache.james.mailbox.MailboxPathLocker;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;

Modified: james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java (original)
+++ james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/HBaseMailboxSessionMapperFactory.java Tue Sep 22 11:50:44 2015
@@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HTableDes
 import org.apache.hadoop.hbase.MasterNotRunningException;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.io.IOUtils;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.SubscriptionException;
@@ -74,8 +75,9 @@ public class HBaseMailboxSessionMapperFa
         this.modSeqProvider = modSeqProvider;
 
         //TODO: add better exception handling for this
+        HBaseAdmin hbaseAdmin = null;
         try {
-            HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+            hbaseAdmin = new HBaseAdmin(conf);
             HTableDescriptor desc = null;
             HColumnDescriptor hColumnDescriptor = null;
 
@@ -118,6 +120,8 @@ public class HBaseMailboxSessionMapperFa
 
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            IOUtils.cleanup(null, hbaseAdmin);
         }
     }
 

Modified: james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java (original)
+++ james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java Tue Sep 22 11:50:44 2015
@@ -347,6 +347,7 @@ public class HBaseMailboxMapper extends
             scan = new Scan();
             scan.setMaxVersions(1);
             scan.addColumn(MAILBOX_CF, MAILBOX_MESSAGE_COUNT);
+            IOUtils.cleanup(null, scanner);
             scanner = mailboxes.getScanner(scan);
             Put put = null;
             while ((result = scanner.next()) != null) {
@@ -357,14 +358,7 @@ public class HBaseMailboxMapper extends
         } catch (IOException e) {
             throw new RuntimeException("Error deleting MESSAGES table ", e);
         } finally {
-            IOUtils.closeStream(scanner);
-            if (messages != null) {
-                try {
-                    messages.close();
-                } catch (IOException ex) {
-                    throw new RuntimeException("Error closing table " + messages, ex);
-                }
-            }
+            IOUtils.cleanup(null, scanner, messages, mailboxes);
         }
     }
     
@@ -382,14 +376,11 @@ public class HBaseMailboxMapper extends
             while ((result = scanner.next()) != null) {
                 deletes.add(new Delete(result.getRow()));
             }
-            long totalDeletes = deletes.size();
             mailboxes.delete(deletes);
         } catch (IOException ex) {
             throw new RuntimeException("IOException deleting mailboxes", ex);
         } finally {
-            IOUtils.closeStream(scanner);
-            // TODO Temporary commented, was not compiling.
-//            IOUtils.closeStream(mailboxes);
+            IOUtils.cleanup(null, scanner, mailboxes);
         }
     }
 

Modified: james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java (original)
+++ james/mailbox/trunk/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMessageMapper.java Tue Sep 22 11:50:44 2015
@@ -337,8 +337,7 @@ public class HBaseMessageMapper extends
             scan.setMaxVersions(1);
             scanner = messages.getScanner(scan);
             long count = 0;
-            Result result;
-            while ((result = scanner.next()) != null) {
+            while (scanner.next() != null) {
                 count++;
             }
             return count;

Modified: james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseUtilsTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseUtilsTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseUtilsTest.java (original)
+++ james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/HBaseUtilsTest.java Tue Sep 22 11:50:44 2015
@@ -146,7 +146,7 @@ public class HBaseUtilsTest {
         flags.add("userFlag1");
         flags.add("userFlag2");
         HBaseId uuid = HBaseId.of(UUID.randomUUID());
-        final SimpleMessage message = new SimpleMessage(new Date(), 100, 10, null, flags, new PropertyBuilder(), uuid);
+        final SimpleMessage<HBaseId> message = new SimpleMessage<HBaseId>(new Date(), 100, 10, null, flags, new PropertyBuilder(), uuid);
         Put put = flagsToPut(message, flags);
         //test for the system flags
         assertTrue(put.has(MESSAGES_META_CF, FLAGS_SEEN, MARKER_PRESENT));

Modified: james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapperTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapperTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapperTest.java (original)
+++ james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapperTest.java Tue Sep 22 11:50:44 2015
@@ -31,7 +31,6 @@ import static org.junit.Assert.assertArr
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -176,24 +175,28 @@ public class HBaseMailboxMapperTest {
     private void testSave() throws Exception {
         LOG.info("save and mailboxFromResult");
         final HTable mailboxes = new HTable(conf, MAILBOXES_TABLE);
-
-        final HBaseMailbox mlbx = mailboxList.get(mailboxList.size() / 2);
-
-        final Get get = new Get(mlbx.getMailboxId().toBytes());
-        // get all columns for the DATA column family
-        get.addFamily(MAILBOX_CF);
-
-        final Result result = mailboxes.get(get);
-        final HBaseMailbox newValue = (HBaseMailbox) mailboxFromResult(result);
-        assertEquals(mlbx, newValue);
-        assertEquals(mlbx.getUser(), newValue.getUser());
-        assertEquals(mlbx.getName(), newValue.getName());
-        assertEquals(mlbx.getNamespace(), newValue.getNamespace());
-        assertEquals(mlbx.getMailboxId(), newValue.getMailboxId());
-        assertEquals(mlbx.getLastUid(), newValue.getLastUid());
-        assertEquals(mlbx.getUidValidity(), newValue.getUidValidity());
-        assertEquals(mlbx.getHighestModSeq(), newValue.getHighestModSeq());
-        assertArrayEquals(mlbx.getMailboxId().toBytes(), newValue.getMailboxId().toBytes());
+        try {
+            
+            final HBaseMailbox mlbx = mailboxList.get(mailboxList.size() / 2);
+        
+            final Get get = new Get(mlbx.getMailboxId().toBytes());
+            // get all columns for the DATA column family
+            get.addFamily(MAILBOX_CF);
+        
+            final Result result = mailboxes.get(get);
+            final HBaseMailbox newValue = (HBaseMailbox) mailboxFromResult(result);
+            assertEquals(mlbx, newValue);
+            assertEquals(mlbx.getUser(), newValue.getUser());
+            assertEquals(mlbx.getName(), newValue.getName());
+            assertEquals(mlbx.getNamespace(), newValue.getNamespace());
+            assertEquals(mlbx.getMailboxId(), newValue.getMailboxId());
+            assertEquals(mlbx.getLastUid(), newValue.getLastUid());
+            assertEquals(mlbx.getUidValidity(), newValue.getUidValidity());
+            assertEquals(mlbx.getHighestModSeq(), newValue.getHighestModSeq());
+            assertArrayEquals(mlbx.getMailboxId().toBytes(), newValue.getMailboxId().toBytes());
+        } finally {
+            mailboxes.close();
+        }
     }
 
     /**
@@ -249,14 +252,6 @@ public class HBaseMailboxMapperTest {
     }
 
     /**
-     * Test of deleteAllMemberships method, of class HBaseMailboxMapper.
-     */
-    private void testDeleteAllMemberships() {
-        LOG.info("deleteAllMemberships");
-        fail("Not yet implemented");
-    }
-
-    /**
      * Test of deleteAllMailboxes method, of class HBaseMailboxMapper.
      */
     private void testDeleteAllMailboxes() throws MailboxException {
@@ -284,19 +279,24 @@ public class HBaseMailboxMapperTest {
                 MESSAGES_TABLE, MESSAGE_DATA_BODY_CF, Bytes.toBytes("10"), 10);
         ChunkInputStream in = new ChunkInputStream(conf,
                 MESSAGES_TABLE, MESSAGE_DATA_BODY_CF, Bytes.toBytes("10"));
-        //create the stream
-        ByteArrayInputStream bin = new ByteArrayInputStream(data);
-        ByteArrayOutputStream bout = new ByteArrayOutputStream(data.length);
-        int b;
-        while ((b = bin.read()) != -1) {
-            out.write(b);
-        }
-        out.close();
-        while ((b = in.read()) != -1) {
-            bout.write(b);
+        try {
+            //create the stream
+            ByteArrayInputStream bin = new ByteArrayInputStream(data);
+            ByteArrayOutputStream bout = new ByteArrayOutputStream(data.length);
+            int b;
+            while ((b = bin.read()) != -1) {
+                out.write(b);
+            }
+            out.close();
+            while ((b = in.read()) != -1) {
+                bout.write(b);
+            }
+            String s = bout.toString();
+            assertTrue(original.equals(s));
+        } finally {
+            in.close();
+            out.close();
         }
-        String s = bout.toString();
-        assertTrue(original.equals(s));
     }
 
     private static void fillMailboxList() {

Modified: james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/user/HBaseSubscriptionMapperTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/user/HBaseSubscriptionMapperTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/user/HBaseSubscriptionMapperTest.java (original)
+++ james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/user/HBaseSubscriptionMapperTest.java Tue Sep 22 11:50:44 2015
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.HTable;
@@ -31,10 +32,14 @@ import org.apache.hadoop.hbase.util.Byte
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.mailbox.hbase.HBaseClusterSingleton;
 import org.apache.james.mailbox.hbase.HBaseMailboxSessionMapperFactory;
+
 import static org.apache.james.mailbox.hbase.HBaseNames.*;
+
 import org.apache.james.mailbox.store.user.model.Subscription;
 import org.apache.james.mailbox.store.user.model.impl.SimpleSubscription;
+
 import static org.junit.Assert.*;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -154,7 +159,7 @@ public class HBaseSubscriptionMapperTest
     @Test
     public void testFindSubscriptionsForUser() throws Exception {
         LOG.info("findSubscriptionsForUser");
-        final SimpleSubscription fake1 = new SimpleSubscription("user1", "FAKEBOX");
+        @SuppressWarnings("unused") final SimpleSubscription fake1 = new SimpleSubscription("user1", "FAKEBOX");
         final SimpleSubscription fake2 = new SimpleSubscription("fakeUser", "INBOX");
         for (String user : subscriptionList.keySet()) {
             LOG.info("Searching for all subscriptions for user: " + user);

Modified: james/mailbox/trunk/jcr/pom.xml
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/pom.xml?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/pom.xml (original)
+++ james/mailbox/trunk/jcr/pom.xml Tue Sep 22 11:50:44 2015
@@ -98,5 +98,10 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

Modified: james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java (original)
+++ james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java Tue Sep 22 11:50:44 2015
@@ -52,8 +52,10 @@ import org.apache.james.mailbox.store.ma
  */
 public class JCRMailboxMapper extends AbstractJCRScalingMapper implements MailboxMapper<JCRId> {
 
+	@SuppressWarnings("deprecation")
+    private static final String XPATH_LANGUAGE = Query.XPATH;
 
-	public JCRMailboxMapper(final MailboxSessionJCRRepository repos, MailboxSession session, final int scaling) {
+    public JCRMailboxMapper(final MailboxSessionJCRRepository repos, MailboxSession session, final int scaling) {
         super(repos, session, scaling);
     }
 
@@ -94,7 +96,7 @@ public class JCRMailboxMapper extends Ab
             QueryManager manager = getSession().getWorkspace().getQueryManager();
 
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "/" + ISO9075.encodePath(path.getNamespace())  + "//element(*,jamesMailbox:mailbox)[@" + JCRMailbox.NAME_PROPERTY + "='" + name+ "' and @" + JCRMailbox.NAMESPACE_PROPERTY +"='" + namespace + "' and @" + JCRMailbox.USER_PROPERTY + "='" + user + "']";
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             if (it.hasNext()) {
                 return new JCRMailbox(it.nextNode(), getLogger());
@@ -125,7 +127,7 @@ public class JCRMailboxMapper extends Ab
             
             QueryManager manager = getSession().getWorkspace().getQueryManager();
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "/" + ISO9075.encodePath(path.getNamespace()) + "//element(*,jamesMailbox:mailbox)[jcr:like(@" + JCRMailbox.NAME_PROPERTY + ",'%" + name + "%') and @" + JCRMailbox.NAMESPACE_PROPERTY +"='" + namespace + "' and @" + JCRMailbox.USER_PROPERTY + "='" + user + "']";
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             while (it.hasNext()) {
                 mailboxList.add(new JCRMailbox(it.nextNode(), getLogger()));
@@ -205,7 +207,7 @@ public class JCRMailboxMapper extends Ab
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "/" + ISO9075.encodePath(mailbox.getNamespace()) 
                     + "//element(*,jamesMailbox:mailbox)[jcr:like(@"
                     + JCRMailbox.NAME_PROPERTY + ",'" + name + delimiter + "%') and @" + JCRMailbox.NAMESPACE_PROPERTY +"='" + namespace + "' and @" + JCRMailbox.USER_PROPERTY + "='" + user + "']";
-            QueryResult result = manager.createQuery(queryString, Query.XPATH)
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE)
                     .execute();
             NodeIterator it = result.getNodes();
             return it.hasNext();
@@ -224,7 +226,7 @@ public class JCRMailboxMapper extends Ab
             QueryManager manager = getSession().getWorkspace().getQueryManager();
 
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "//element(*,jamesMailbox:mailbox)";
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             while (it.hasNext()) {
                 mList.add(new JCRMailbox(it.nextNode(), getLogger()));

Modified: james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java (original)
+++ james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java Tue Sep 22 11:50:44 2015
@@ -62,6 +62,9 @@ import org.apache.james.mailbox.store.ma
  */
 public class JCRMessageMapper extends AbstractMessageMapper<JCRId> implements JCRImapConstants {
 
+    @SuppressWarnings("deprecation")
+    private static final String XPATH_LANGUAGE = Query.XPATH;
+
     /**
      * Store the messages directly in the mailbox: .../mailbox/
      */
@@ -213,7 +216,7 @@ public class JCRMessageMapper extends Ab
             String queryString = "/jcr:root" + getMailboxPath(mailbox) + "//element(*,jamesMailbox:message) order by @"
                     + JCRMessage.UID_PROPERTY;
             QueryManager manager = getSession().getWorkspace().getQueryManager();
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator nodes = result.getNodes();
             long count = nodes.getSize();
             if (count == -1) {
@@ -244,7 +247,7 @@ public class JCRMessageMapper extends Ab
             String queryString = "/jcr:root" + getMailboxPath(mailbox) + "//element(*,jamesMailbox:message)[@"
                     + JCRMessage.SEEN_PROPERTY + "='false'] order by @" + JCRMessage.UID_PROPERTY;
             QueryManager manager = getSession().getWorkspace().getQueryManager();
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator nodes = result.getNodes();
             long count = nodes.getSize();
 
@@ -339,7 +342,7 @@ public class JCRMessageMapper extends Ab
                     + JCRMessage.RECENT_PROPERTY + "='true'] order by @" + JCRMessage.UID_PROPERTY;
 
             QueryManager manager = getSession().getWorkspace().getQueryManager();
-            Query query = manager.createQuery(queryString, Query.XPATH);
+            Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
             QueryResult result = query.execute();
 
             NodeIterator iterator = result.getNodes();
@@ -367,7 +370,7 @@ public class JCRMessageMapper extends Ab
 
             QueryManager manager = getSession().getWorkspace().getQueryManager();
 
-            Query query = manager.createQuery(queryString, Query.XPATH);
+            Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
             query.setLimit(1);
             QueryResult result = query.execute();
 
@@ -551,7 +554,7 @@ public class JCRMessageMapper extends Ab
                 + JCRMessage.UID_PROPERTY + ">=" + uid + "] order by @" + JCRMessage.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        Query query = manager.createQuery(queryString, Query.XPATH);
+        Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
         if (batchSize > 0)
             query.setLimit(batchSize);
         QueryResult result = query.execute();
@@ -570,7 +573,7 @@ public class JCRMessageMapper extends Ab
                 + JCRMessage.UID_PROPERTY + "=" + uid + "]";
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        Query query = manager.createQuery(queryString, Query.XPATH);
+        Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
         query.setLimit(1);
         QueryResult result = query.execute();
         NodeIterator iterator = result.getNodes();
@@ -588,7 +591,7 @@ public class JCRMessageMapper extends Ab
                 + "] order by @" + JCRMessage.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        Query query = manager.createQuery(queryString, Query.XPATH);
+        Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
         if (batchSize > 0)
             query.setLimit(batchSize);
         QueryResult result = query.execute();
@@ -607,7 +610,7 @@ public class JCRMessageMapper extends Ab
         String queryString = "/jcr:root" + getMailboxPath(mailbox) + "//element(*,jamesMailbox:message) order by @"
                 + JCRMessage.UID_PROPERTY;
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        Query query = manager.createQuery(queryString, Query.XPATH);
+        Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
         if (batchSize > 0)
             query.setLimit(batchSize);
         QueryResult result = query.execute();
@@ -627,7 +630,7 @@ public class JCRMessageMapper extends Ab
                 + JCRMessage.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+        QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
@@ -642,7 +645,7 @@ public class JCRMessageMapper extends Ab
         String queryString = "/jcr:root" + getMailboxPath(mailbox) + "//element(*,jamesMailbox:message)[@"
                 + JCRMessage.UID_PROPERTY + "=" + uid + " and @" + JCRMessage.DELETED_PROPERTY + "='true']";
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        Query query = manager.createQuery(queryString, Query.XPATH);
+        Query query = manager.createQuery(queryString, XPATH_LANGUAGE);
         query.setLimit(1);
         QueryResult result = query.execute();
 
@@ -662,7 +665,7 @@ public class JCRMessageMapper extends Ab
                 + JCRMessage.DELETED_PROPERTY + "='true'] order by @" + JCRMessage.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+        QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
@@ -678,7 +681,7 @@ public class JCRMessageMapper extends Ab
                 + JCRMessage.DELETED_PROPERTY + "='true'] order by @" + JCRMessage.UID_PROPERTY;
 
         QueryManager manager = getSession().getWorkspace().getQueryManager();
-        QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+        QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {

Modified: james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java (original)
+++ james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java Tue Sep 22 11:50:44 2015
@@ -48,6 +48,9 @@ import org.apache.james.mailbox.store.us
  */
 public class JCRSubscriptionMapper extends AbstractJCRScalingMapper implements SubscriptionMapper {
 
+    @SuppressWarnings("deprecation")
+    private static final String XPATH_LANGUAGE = Query.XPATH;
+
     public JCRSubscriptionMapper(final MailboxSessionJCRRepository repos, MailboxSession session, final int scaling) {
         super(repos,session, scaling);
     }
@@ -100,7 +103,7 @@ public class JCRSubscriptionMapper exten
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "//element(*,jamesMailbox:user)[@" + JCRSubscription.USERNAME_PROPERTY + "='" + user + "'] AND [@" + JCRSubscription.MAILBOXES_PROPERTY +"='" + mailbox + "']";
 
             QueryManager manager = getSession().getWorkspace().getQueryManager();
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             
             NodeIterator nodeIt = result.getNodes();
             if (nodeIt.hasNext()) {
@@ -130,7 +133,7 @@ public class JCRSubscriptionMapper exten
             String queryString = "/jcr:root/" + MAILBOXES_PATH + "//element(*,jamesMailbox:user)[@" + JCRSubscription.USERNAME_PROPERTY + "='" + user + "']";
 
             QueryManager manager = getSession().getWorkspace().getQueryManager();
-            QueryResult result = manager.createQuery(queryString, Query.XPATH).execute();
+            QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             
             NodeIterator nodeIt = result.getNodes();
             while (nodeIt.hasNext()) {

Modified: james/mailbox/trunk/jpa/pom.xml
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/pom.xml?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jpa/pom.xml (original)
+++ james/mailbox/trunk/jpa/pom.xml Tue Sep 22 11:50:44 2015
@@ -74,6 +74,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
             <scope>test</scope>

Modified: james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMessage.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMessage.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMessage.java (original)
+++ james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/JPAStreamingMessage.java Tue Sep 22 11:50:44 2015
@@ -51,12 +51,10 @@ import org.apache.openjpa.persistence.Pe
 @Table(name="JAMES_MAIL")
 public class JPAStreamingMessage extends AbstractJPAMessage {
 
-    @SuppressWarnings("unused")
     @Persistent(optional = false, fetch = FetchType.LAZY)
     @Column(name = "MAIL_BYTES", length = 1048576000, nullable = false)
     private InputStream body;
 
-    @SuppressWarnings("unused")
     @Persistent(optional = false, fetch = FetchType.LAZY)
     @Column(name = "HEADER_BYTES", length = 10485760, nullable = false)
     private InputStream header;

Modified: james/mailbox/trunk/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java (original)
+++ james/mailbox/trunk/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java Tue Sep 22 11:50:44 2015
@@ -106,6 +106,7 @@ import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.search.WildcardQuery;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
+import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.Version;
 
 /**
@@ -1203,8 +1204,9 @@ public class LuceneMessageSearchIndex<Id
      * @see org.apache.james.mailbox.store.search.ListeningMessageSearchIndex#update(org.apache.james.mailbox.MailboxSession, org.apache.james.mailbox.store.mail.model.Mailbox, org.apache.james.mailbox.model.MessageRange, javax.mail.Flags)
      */
     public void update(MailboxSession session, Mailbox<Id> mailbox, MessageRange range, Flags f, long modSeq) throws MailboxException {
+        IndexSearcher searcher = null;
         try {
-            IndexSearcher searcher = new IndexSearcher(IndexReader.open(writer, true));
+            searcher = new IndexSearcher(IndexReader.open(writer, true));
             BooleanQuery query = new BooleanQuery();
             query.add(new TermQuery(new Term(MAILBOX_ID_FIELD, mailbox.getMailboxId().serialize())), BooleanClause.Occur.MUST);
             query.add(createQuery(range), BooleanClause.Occur.MUST);
@@ -1215,7 +1217,7 @@ public class LuceneMessageSearchIndex<Id
             for (int i = 0; i < sDocs.length; i++) {
                 Document doc = searcher.doc(sDocs[i].doc);
                 
-                if (doc.getField(FLAGS_FIELD) == null) {
+                if (doc.getFieldable(FLAGS_FIELD) == null) {
                     doc.removeFields(FLAGS_FIELD);
                     indexFlags(doc, f);
 
@@ -1226,6 +1228,12 @@ public class LuceneMessageSearchIndex<Id
         } catch (IOException e) {
             throw new MailboxException("Unable to add messages in index", e);
 
+        } finally {
+            try {
+                IOUtils.closeWhileHandlingException(searcher);
+            } catch (IOException e) {
+                //can't happen anyway
+            }
         }
         
     }

Modified: james/mailbox/trunk/maildir/pom.xml
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/pom.xml?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/pom.xml (original)
+++ james/mailbox/trunk/maildir/pom.xml Tue Sep 22 11:50:44 2015
@@ -86,5 +86,10 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>

Modified: james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMessageNameTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMessageNameTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMessageNameTest.java (original)
+++ james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MailderMessageNameTest.java Tue Sep 22 11:50:44 2015
@@ -18,9 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailbox.maildir;
 
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNull;
-import static junit.framework.Assert.fail;
+import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,12 +32,10 @@ import org.junit.runners.Parameterized;
 @RunWith(value = Parameterized.class)
 public class MailderMessageNameTest {
 
-    private String invalidName;
     private String validName;
     private Parts parts;
 
-    public MailderMessageNameTest(String invalidName, Parts parts) {
-        this.invalidName = invalidName;
+    public MailderMessageNameTest(Parts parts) {
         this.validName = parts.fullName;
         this.parts = parts;
     }
@@ -50,83 +46,64 @@ public class MailderMessageNameTest {
         // no size, two flags
         Parts parts = Parts.fullName("1328026049.19146_0.km1111:2,RS").timeSeconds(1328026049)
                 .baseName("1328026049.19146_0.km1111").flagAnswered().flagSeen();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // size and flag
         parts = Parts.fullName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111,S=13103:2,S")
                 .timeSeconds(1328613172).size(13103L)
                 .baseName("1328613172.M569643P1862V0000000000000902I00EE42CE_0.km1111").flagSeen();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // size, no flags
         parts = Parts.fullName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111,S=1344:2,")
                 .baseName("1340124194.M723289P3184V0000000000000902I006780E9_6.km1111").timeSeconds(1340124194)
                 .size(1344L);
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // three flags, no size
         parts = Parts.fullName("1106685752.12132_0.km1111:2,FRS").baseName("1106685752.12132_0.km1111")
                 .timeSeconds(1106685752).flagFlagged().flagAnswered().flagSeen();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // with dovecot attributes
         parts = Parts.fullName("1035478339.27041_118.foo.org,S=1000,W=1030:2,S")
                 .baseName("1035478339.27041_118.foo.org").timeSeconds(1035478339).size(1000L).flagSeen();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         parts = parts.copy();
         parts.fullName = "1035478339.27041_118.foo.org,W=1030,S=1000:2,S";
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // new mail, no info part at all. found in courier maildirs
         parts = Parts.fullName("1355543030.15049_0.foo.org").baseName("1355543030.15049_0.foo.org")
                 .timeSeconds(1355543030).noFlags();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         // new mail, generated by james
         parts = Parts.fullName("1356001301.e563087e30181513.foohost,S=629:2,")
                 .baseName("1356001301.e563087e30181513.foohost").timeSeconds(1356001301).size(629L);
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         parts = Parts.fullName("1355675588.5c7e107958851103.foohost,S=654:2,S").timeSeconds(1355675588)
                 .baseName("1355675588.5c7e107958851103.foohost").size(654L).flagSeen();
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         parts = Parts.fullName("1355675651.f3dd564265174501.foohost,S=661:2,")
                 .baseName("1355675651.f3dd564265174501.foohost").timeSeconds(1355675651).size(661L);
-        args.add(valid(parts));
+        args.add(toObjectArray(parts));
 
         return args;
     }
-
-    private static Object[] valid(Parts parts) {
-        return invalidAndValid(null, parts);
-    }
-
-    private static Object[] invalid(String invalidName) {
-        return invalidAndValid(invalidName, null);
-    }
-
-    private static Object[] invalidAndValid(String invalidName, Parts validName) {
-        return new Object[] { invalidName, validName };
+    private static Object[] toObjectArray(Parts validName) {
+        return new Object[] { validName };
     }
 
     @Test
     public void testParsing() throws Exception {
-        if (validName != null) {
-            try {
-                parseValidName(validName, parts);
-            } catch (Throwable e) {
-                throw new Exception("Valid name '" + validName + "' failed.", e);
-            }
-        }
-        if (invalidName != null) {
-            try {
-                parseInvalidName(invalidName);
-                fail("No error reported for invalid name: " + invalidName);
-            } catch (Exception e) {
-                // test successful
-            }
+        try {
+            parseValidName(validName, parts);
+        } catch (Throwable e) {
+            throw new Exception("Valid name '" + validName + "' failed.", e);
         }
     }
 
@@ -134,17 +111,14 @@ public class MailderMessageNameTest {
         MaildirMessageName mn = new MaildirMessageName(null, name);
         mn.setMessageNameStrictParse(false);
         if (parts.time == null) {
-            assertNull("date", mn.getInternalDate());
+            assertThat(mn.getInternalDate()).describedAs("date").isNull();
         } else {
-            assertEquals("date", mn.getInternalDate().getTime(), parts.time.longValue());
+            assertThat(mn.getInternalDate()).describedAs("date").hasTime(parts.time);
         }
-        assertEquals("fullName", parts.fullName, mn.getFullName());
-        assertEquals("flags", parts.flags, mn.getFlags());
-        assertEquals("size", parts.size, mn.getSize());
-        assertEquals("baseName", parts.baseName, mn.getBaseName());
-    }
-
-    private void parseInvalidName(String name) throws Exception {
+        assertThat(mn.getFullName()).describedAs("fullName").isEqualTo(parts.fullName);
+        assertThat(mn.getFlags()).describedAs("flags").isEqualTo(parts.flags);
+        assertThat(mn.getSize()).describedAs("size").isEqualTo(parts.size);
+        assertThat(mn.getBaseName()).describedAs("baseName").isEqualTo(parts.baseName);
     }
 
     static class Parts {

Modified: james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java?rev=1704587&r1=1704586&r2=1704587&view=diff
==============================================================================
--- james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java (original)
+++ james/mailbox/trunk/maildir/src/test/java/org/apache/james/mailbox/maildir/MaildirMailboxManagerTest.java Tue Sep 22 11:50:44 2015
@@ -18,101 +18,43 @@
  ****************************************************************/
 package org.apache.james.mailbox.maildir;
 
-import static org.junit.Assert.fail;
-
-import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.james.mailbox.AbstractMailboxManagerTest;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.acl.MailboxACLResolver;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
 import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
-import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.exception.MailboxExistsException;
 import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreMailboxManager;
-import org.junit.After;
 import org.junit.Before;
-import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Rule;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runners.Suite.SuiteClasses;
+
+@SuiteClasses({
+    MaildirMailboxManagerTest.DomainUser.class,
+    MaildirMailboxManagerTest.User.class,
+    MaildirMailboxManagerTest.FullUser.class})
 
-/**
- * MaildirMailboxManagerTest that extends the StoreMailboxManagerTest.
- */
-public class MaildirMailboxManagerTest extends AbstractMailboxManagerTest {
-    
-    private static final String MAILDIR_HOME = "target/Maildir";
+public class MaildirMailboxManagerTest {
 
-    /**
-     * Setup the mailboxManager.
-     * 
-     * @throws Exception
-     */
-    @Before
-    public void setup() throws Exception {
-        if (OsDetector.isWindows()) {
-            System.out.println("Maildir tests work only on non-windows systems. So skip the test");
-        } else {
-          deleteMaildirTestDirectory();
-        }
-    }
-    
-    /**
-     * Delete Maildir directory after test.
-     * 
-     * @throws IOException 
-     */
-    @After
-    public void tearDown() throws IOException {
-        if (OsDetector.isWindows()) {
-            System.out.println("Maildir tests work only on non-windows systems. So skip the test");
-        } else {
-          deleteMaildirTestDirectory();
-        }
-    }
-
-    /**
-     * @see org.apache.james.mailbox.AbstractMailboxManagerTest#testList()
-     */
-    @Test
-    @Override
-    public void testList() throws MailboxException, UnsupportedEncodingException {
+    public static abstract class AbstractMaildirMailboxManagerTest extends AbstractMailboxManagerTest {
+        @Rule public TemporaryFolder tmpFolder = new TemporaryFolder();
         
-        if (OsDetector.isWindows()) {
-            System.out.println("Maildir tests work only on non-windows systems. So skip the test");
-        } else {
-
-            doTestListWithMaildirStoreConfiguration("/%domain/%user");
-
-            // TODO Tests fail with /%user configuration
-            try {
-                doTestListWithMaildirStoreConfiguration("/%user");
-                fail();
-            } catch (MailboxExistsException e) {
-                // This is expected as the there are many users which have the same localpart
+        @Before
+        public void setup() throws Exception {
+            if (OsDetector.isWindows()) {
+                System.out.println("Maildir tests work only on non-windows systems. So skip the test");
+            } else {
+                createMailboxManager();
             }
-            // TODO Tests fail with /%fulluser configuration
-            doTestListWithMaildirStoreConfiguration("/%fulluser");
-
         }
-            
-    }
-    
-    /**
-     * @see org.apache.james.mailbox.AbstractMailboxManagerTest#testBasicOperations()
-     */
-    @Test
-    @Override
-    public void testBasicOperations() throws BadCredentialsException, MailboxException, UnsupportedEncodingException {
         
-        if (OsDetector.isWindows()) {
-            System.out.println("Maildir tests work only on non-windows systems. So skip the test");
-        } else {
-
-            MaildirStore store = new MaildirStore(MAILDIR_HOME + "/%domain/%user", new JVMMailboxPathLocker());
+        protected void createMailboxManager(String configuration) throws MailboxException, IOException {
+            MaildirStore store = new MaildirStore(tmpFolder.newFolder().getPath() + configuration, new JVMMailboxPathLocker());
             MaildirMailboxSessionMapperFactory mf = new MaildirMailboxSessionMapperFactory(store);
             
             MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
@@ -121,97 +63,33 @@ public class MaildirMailboxManagerTest e
             StoreMailboxManager<MaildirId> manager = new StoreMailboxManager<MaildirId>(mf, null, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver);
             manager.init();
             setMailboxManager(manager);
-            try {
-                super.testBasicOperations();
-            } finally {
-                try {
-                    deleteMaildirTestDirectory();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-       
         }
 
     }
-
-    /**
-     * @see org.apache.james.mailbox.AbstractMailboxManagerTest#testCreateSubFolderDirectly()
-     */
-    @Test
-    @Override
-    public void testCreateSubFolderDirectly() throws BadCredentialsException, MailboxException { 
-
-        if (OsDetector.isWindows()) {
-            System.out.println("Maildir tests work only on non-windows systems. So skip the test");
-        } else {
-
-            MaildirStore store = new MaildirStore(MAILDIR_HOME + "/%domain/%user", new JVMMailboxPathLocker());
-            MaildirMailboxSessionMapperFactory mf = new MaildirMailboxSessionMapperFactory(store);
-            MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
-            GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
-
-            StoreMailboxManager<MaildirId> manager = new StoreMailboxManager<MaildirId>(mf, null, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver);
-            manager.init();
-            setMailboxManager(manager);
-            try {
-                super.testCreateSubFolderDirectly();
-            } finally {
-                try {
-                    deleteMaildirTestDirectory();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-       
     
+    public static class DomainUser extends AbstractMaildirMailboxManagerTest {
+        @Override
+        protected void createMailboxManager() throws MailboxException,
+                IOException {
+            createMailboxManager("/%domain/%user");
         }
-
     }
-
-    /**
-     * Create the maildirStore with the provided configuration and executes the list() tests.
-     * Cleans the generated artifacts.
-     * 
-     * @param maildirStoreConfiguration
-     * @throws MailboxException
-     * @throws UnsupportedEncodingException
-     */
-    private void doTestListWithMaildirStoreConfiguration(String maildirStoreConfiguration) throws MailboxException, UnsupportedEncodingException {
-        MaildirStore store = new MaildirStore(MAILDIR_HOME + maildirStoreConfiguration, new JVMMailboxPathLocker());
-        MaildirMailboxSessionMapperFactory mf = new MaildirMailboxSessionMapperFactory(store);
-        MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
-        GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();
-
-        StoreMailboxManager<MaildirId> manager = new StoreMailboxManager<MaildirId>(mf, null, new JVMMailboxPathLocker(), aclResolver, groupMembershipResolver);
-        manager.init();
-        setMailboxManager(manager);
-        try {
-            super.testList();
-        } finally {
-            try {
-                deleteMaildirTestDirectory();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
+    
+    @Ignore
+    public static class User extends AbstractMaildirMailboxManagerTest {
+        @Override
+        protected void createMailboxManager() throws MailboxException,
+                IOException {
+            createMailboxManager("/%user");
         }
     }
-
-    /**
-     * @see org.apache.james.mailbox.MailboxManagerTest#createMailboxManager()
-     */
-    @Override
-    protected void createMailboxManager() {
-        // Do nothing, the maildir mailboxManager is created in the test method.
-    }
-   
-    /**
-     * Utility method to delete the test Maildir Directory.
-     * 
-     * @throws IOException
-     */
-    private void deleteMaildirTestDirectory() throws IOException {
-        FileUtils.deleteDirectory(new File(MAILDIR_HOME));
-    }
     
+    public static class FullUser extends AbstractMaildirMailboxManagerTest {
+        @Override
+        protected void createMailboxManager() throws MailboxException,
+                IOException {
+            createMailboxManager("/%fulluser");
+        }
+    }
+
 }




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