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]
