JAMES-1818 Remove store usage in PostDequeueDecorator

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

Branch: refs/heads/master
Commit: b9c1f441cf2b1808db9364c042326edf39496848
Parents: f1116e2
Author: Raphael Ouazana <raphael.ouaz...@linagora.com>
Authored: Thu Aug 25 17:42:04 2016 +0200
Committer: Raphael Ouazana <raphael.ouaz...@linagora.com>
Committed: Mon Aug 29 15:17:17 2016 +0200

----------------------------------------------------------------------
 .../james/jmap/send/PostDequeueDecorator.java   | 39 +++-----------------
 .../jmap/send/PostDequeueDecoratorFactory.java  | 14 ++-----
 .../jmap/send/PostDequeueDecoratorTest.java     | 13 +------
 3 files changed, 9 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b9c1f441/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
index 52c2dfd..ab2bb21 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
@@ -19,30 +19,21 @@
 package org.apache.james.jmap.send;
 
 import java.io.Serializable;
-import java.util.Iterator;
 
 import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
 import org.apache.james.jmap.model.MessageId;
 import org.apache.james.jmap.model.mailbox.Role;
 import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException;
-import org.apache.james.jmap.send.exception.MessageIdNotFoundException;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
-import org.apache.james.mailbox.model.MessageRange;
-import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
-import org.apache.james.mailbox.store.mail.MessageMapper;
-import org.apache.james.mailbox.store.mail.MessageMapperFactory;
-import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.queue.api.MailQueue.MailQueueException;
 import org.apache.james.queue.api.MailQueue.MailQueueItem;
 import 
org.apache.james.queue.api.MailQueueItemDecoratorFactory.MailQueueItemDecorator;
 import org.apache.mailet.Mail;
-import org.javatuples.Pair;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,17 +41,11 @@ public class PostDequeueDecorator extends 
MailQueueItemDecorator {
     private static final Logger LOG = 
LoggerFactory.getLogger(PostDequeueDecorator.class);
 
     private final MailboxManager mailboxManager;
-    private final MessageMapperFactory messageMapperFactory;
-    private final MailboxMapperFactory mailboxMapperFactory;
 
     public PostDequeueDecorator(MailQueueItem mailQueueItem,
-            MailboxManager mailboxManager,
-            MessageMapperFactory messageMapperFactory,
-            MailboxMapperFactory mailboxMapperFactory) {
+            MailboxManager mailboxManager) {
         super(mailQueueItem);
         this.mailboxManager = mailboxManager;
-        this.messageMapperFactory = messageMapperFactory;
-        this.mailboxMapperFactory = mailboxMapperFactory;
     }
 
     @Override
@@ -76,8 +61,7 @@ public class PostDequeueDecorator extends 
MailQueueItemDecorator {
             String username = (String) 
getMail().getAttribute(MailMetadata.MAIL_METADATA_USERNAME_ATTRIBUTE);
             try {
                 MailboxSession mailboxSession = 
mailboxManager.createSystemSession(username, LOG);
-                Pair<MailboxMessage, MailboxPath> mailboxMessageAndMailboxPath 
= getMailboxMessageAndMailboxPath(messageId, mailboxSession);
-                moveFromOutboxToSent(mailboxMessageAndMailboxPath, 
mailboxSession);
+                moveFromOutboxToSent(messageId, mailboxSession);
             } catch (MailboxException e) {
                 throw new MailQueueException(e.getMessage(), e);
             }
@@ -108,25 +92,12 @@ public class PostDequeueDecorator extends 
MailQueueItemDecorator {
         return (username != null && username instanceof String);
     }
 
-    public Pair<MailboxMessage, MailboxPath> 
getMailboxMessageAndMailboxPath(MessageId messageId, MailboxSession 
mailboxSession) throws MailQueueException, MailboxException {
-        MailboxPath mailboxPath = messageId.getMailboxPath();
-        MessageMapper messageMapper = 
messageMapperFactory.getMessageMapper(mailboxSession);
-        Mailbox mailbox = 
mailboxMapperFactory.getMailboxMapper(mailboxSession).findMailboxByPath(mailboxPath);
-        Iterator<MailboxMessage> resultIterator = 
messageMapper.findInMailbox(mailbox, MessageRange.one(messageId.getUid()), 
MessageMapper.FetchType.Full, 1);
-        if (resultIterator.hasNext()) {
-            return Pair.with(resultIterator.next(), mailboxPath);
-        } else {
-            throw new MessageIdNotFoundException(messageId);
-        }
-    }
-
-    private void moveFromOutboxToSent(Pair<MailboxMessage, MailboxPath> 
mailboxMessageAndMailboxPath, MailboxSession mailboxSession) throws 
MailQueueException, MailboxException {
-        MailboxMessage mailboxMessage = 
mailboxMessageAndMailboxPath.getValue0();
-        MailboxPath outboxMailboxPath = 
mailboxMessageAndMailboxPath.getValue1();
+    private void moveFromOutboxToSent(MessageId messageId, MailboxSession 
mailboxSession) throws MailQueueException, MailboxException {
+        MailboxPath outboxMailboxPath = messageId.getMailboxPath();
         ensureMailboxPathIsOutbox(outboxMailboxPath);
         MailboxPath sentMailboxPath = getSentMailboxPath(mailboxSession);
         
-        mailboxManager.moveMessages(MessageRange.one(mailboxMessage.getUid()), 
outboxMailboxPath, sentMailboxPath, mailboxSession);
+        mailboxManager.moveMessages(messageId.getUidAsRange(), 
outboxMailboxPath, sentMailboxPath, mailboxSession);
     }
 
     private void ensureMailboxPathIsOutbox(MailboxPath outboxMailboxPath) 
throws MailShouldBeInOutboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b9c1f441/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecoratorFactory.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecoratorFactory.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecoratorFactory.java
index 9d0fdef..d2d7974 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecoratorFactory.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecoratorFactory.java
@@ -22,28 +22,20 @@ package org.apache.james.jmap.send;
 import javax.inject.Inject;
 
 import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
-import org.apache.james.mailbox.store.mail.MessageMapperFactory;
 import org.apache.james.queue.api.MailQueue.MailQueueItem;
 import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
 
 public class PostDequeueDecoratorFactory implements 
MailQueueItemDecoratorFactory {
     private final MailboxManager mailboxManager;
-    private final MessageMapperFactory messageMapperFactory;
-    private final MailboxMapperFactory mailboxMapperFactory;
 
     @Inject
-    public PostDequeueDecoratorFactory(MailboxManager mailboxManager,
-            MessageMapperFactory messageMapperFactory,
-            MailboxMapperFactory mailboxMapperFactory) {
-                this.mailboxManager = mailboxManager;
-                this.messageMapperFactory = messageMapperFactory;
-                this.mailboxMapperFactory = mailboxMapperFactory;
+    public PostDequeueDecoratorFactory(MailboxManager mailboxManager) {
+        this.mailboxManager = mailboxManager;
     }
 
     @Override
     public MailQueueItemDecorator decorate(MailQueueItem mailQueueItem) {
-        return new PostDequeueDecorator(mailQueueItem, mailboxManager, 
messageMapperFactory, mailboxMapperFactory);
+        return new PostDequeueDecorator(mailQueueItem, mailboxManager);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b9c1f441/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
index 223e426..858b685 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
@@ -32,7 +32,6 @@ import javax.mail.Flags;
 import org.apache.james.jmap.exceptions.MailboxRoleNotFoundException;
 import org.apache.james.jmap.model.MessageId;
 import org.apache.james.jmap.send.exception.MailShouldBeInOutboxException;
-import org.apache.james.jmap.send.exception.MessageIdNotFoundException;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
@@ -85,7 +84,7 @@ public class PostDequeueDecoratorTest {
         mockedMailQueueItem = mock(MailQueueItem.class);
         mail = new FakeMail();
         when(mockedMailQueueItem.getMail()).thenReturn(mail);
-        testee = new PostDequeueDecorator(mockedMailQueueItem, mailboxManager, 
mailboxSessionMapperFactory, mailboxSessionMapperFactory);
+        testee = new PostDequeueDecorator(mockedMailQueueItem, mailboxManager);
     }
     
     @Test
@@ -99,16 +98,6 @@ public class PostDequeueDecoratorTest {
         verify(mockedMailQueueItem).done(true);
     }
     
-    @Test(expected=MessageIdNotFoundException.class)
-    public void doneShouldThrowWhenMetadataHasNotAnExistingMessageId() throws 
Exception {
-        MailboxSession mailboxSession = 
mailboxManager.createSystemSession(USERNAME, LOGGER);
-        mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
-        mail.setAttribute(MailMetadata.MAIL_METADATA_MESSAGE_ID_ATTRIBUTE, 
MESSAGE_ID);
-        mail.setAttribute(MailMetadata.MAIL_METADATA_USERNAME_ATTRIBUTE, 
USERNAME);
-
-        testee.done(true);
-    }
-    
     @Test(expected=MailShouldBeInOutboxException.class)
     public void doneShouldThrowWhenMessageIsNotInOutbox() throws Exception {
         MailboxSession mailboxSession = 
mailboxManager.createSystemSession(USERNAME, LOGGER);


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

Reply via email to