JAMES-2540 refactor Enqueuer remove useless tmp variables

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

Branch: refs/heads/master
Commit: e9c23cdc660673e2eb02e1676d4e71680e7d4081
Parents: e7f1a84
Author: Matthieu Baechler <[email protected]>
Authored: Tue Sep 11 16:27:30 2018 +0200
Committer: Antoine Duprat <[email protected]>
Committed: Mon Sep 17 07:55:33 2018 +0200

----------------------------------------------------------------------
 .../apache/james/queue/rabbitmq/Enqueuer.java    | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e9c23cdc/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
----------------------------------------------------------------------
diff --git 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
index c99f6a6..1fcdde2 100644
--- 
a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
+++ 
b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Enqueuer.java
@@ -34,6 +34,7 @@ import org.apache.james.queue.api.MailQueue;
 import org.apache.mailet.Mail;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.github.fge.lambdas.Throwing;
 
 class Enqueuer {
     private final MailQueueName name;
@@ -52,15 +53,12 @@ class Enqueuer {
     }
 
     void enQueue(Mail mail) throws MailQueue.MailQueueException {
-        MimeMessagePartsId partsId = saveBlobs(mail).join();
-        MailReferenceDTO mailDTO = MailReferenceDTO.fromMail(mail, partsId);
-        byte[] message = getMessageBytes(mailDTO);
-        rabbitClient.publish(name, message);
-
-        enqueueMetric.increment();
+        saveMail(mail)
+            .thenAccept(Throwing.<MimeMessagePartsId>consumer(partsId -> 
publishReferenceToRabbit(mail, partsId)).sneakyThrow())
+            .thenRun(enqueueMetric::increment);
     }
 
-    private CompletableFuture<MimeMessagePartsId> saveBlobs(Mail mail) throws 
MailQueue.MailQueueException {
+    private CompletableFuture<MimeMessagePartsId> saveMail(Mail mail) throws 
MailQueue.MailQueueException {
         try {
             return mimeMessageStore.save(mail.getMessage());
         } catch (MessagingException e) {
@@ -68,8 +66,13 @@ class Enqueuer {
         }
     }
 
-    private byte[] getMessageBytes(MailReferenceDTO mailDTO) throws 
MailQueue.MailQueueException {
+    private void publishReferenceToRabbit(Mail mail, MimeMessagePartsId 
partsId) throws MailQueue.MailQueueException {
+        rabbitClient.publish(name, getMailReferenceBytes(mail, partsId));
+    }
+
+    private byte[] getMailReferenceBytes(Mail mail, MimeMessagePartsId 
partsId) throws MailQueue.MailQueueException {
         try {
+            MailReferenceDTO mailDTO = MailReferenceDTO.fromMail(mail, 
partsId);
             return mailReferenceSerializer.write(mailDTO);
         } catch (JsonProcessingException e) {
             throw new MailQueue.MailQueueException("Unable to serialize 
message", e);


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

Reply via email to