MAILBOX-304 Logging empty should be a responsibility from AttachmentMapper
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/683e2fa8 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/683e2fa8 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/683e2fa8 Branch: refs/heads/master Commit: 683e2fa8d7ec358864cb1e0d3de93cee26bb05ad Parents: c0ca66f Author: benwa <btell...@linagora.com> Authored: Thu Sep 7 10:22:18 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Thu Sep 7 10:22:18 2017 +0700 ---------------------------------------------------------------------- .../cassandra/mail/CassandraAttachmentDAO.java | 13 +-------- .../mail/CassandraAttachmentDAOV2.java | 19 +------------ .../mail/CassandraAttachmentMapper.java | 28 +++++++++++--------- 3 files changed, 17 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/683e2fa8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java index 386d8df..b0b3ca4 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAO.java @@ -81,24 +81,13 @@ public class CassandraAttachmentDAO { } public CompletableFuture<Optional<Attachment>> getAttachment(AttachmentId attachmentId) { - return getAttachment(attachmentId, NO_LOG_IF_EMPTY); - } - - public CompletableFuture<Optional<Attachment>> getAttachment(AttachmentId attachmentId, boolean logIfEmpty) { Preconditions.checkArgument(attachmentId != null); return cassandraAsyncExecutor.executeSingleRow( selectStatement.bind() .setString(ID, attachmentId.getId())) - .thenApply(optional -> optional.map(this::attachment)) - .thenApply(optional -> logNotFound(attachmentId, logIfEmpty, optional)); + .thenApply(optional -> optional.map(this::attachment)); } - private Optional<Attachment> logNotFound(AttachmentId attachmentId, boolean logIfEmpty, Optional<Attachment> optional) { - if (!optional.isPresent() && logIfEmpty) { - LOGGER.warn("Failed retrieving attachment {}", attachmentId); - } - return optional; - } public CompletableFuture<Void> storeAttachment(Attachment attachment) throws IOException { return cassandraAsyncExecutor.executeVoid( http://git-wip-us.apache.org/repos/asf/james-project/blob/683e2fa8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java index 3cc9ee5..4a6037e 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentDAOV2.java @@ -40,8 +40,6 @@ import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor; import org.apache.james.mailbox.cassandra.ids.BlobId; import org.apache.james.mailbox.model.Attachment; import org.apache.james.mailbox.model.AttachmentId; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.Row; @@ -49,9 +47,6 @@ import com.datastax.driver.core.Session; import com.google.common.base.Preconditions; public class CassandraAttachmentDAOV2 { - private static final Logger LOGGER = LoggerFactory.getLogger(CassandraAttachmentMapper.class); - private static final boolean NO_LOG_IF_EMPTY = false; - private final CassandraAsyncExecutor cassandraAsyncExecutor; private final PreparedStatement insertStatement; private final CassandraBlobsDAO blobsDAO; @@ -83,23 +78,11 @@ public class CassandraAttachmentDAOV2 { } public CompletableFuture<Optional<Attachment>> getAttachment(AttachmentId attachmentId) { - return getAttachment(attachmentId, NO_LOG_IF_EMPTY); - } - - public CompletableFuture<Optional<Attachment>> getAttachment(AttachmentId attachmentId, boolean logIfEmpty) { Preconditions.checkArgument(attachmentId != null); return cassandraAsyncExecutor.executeSingleRow( selectStatement.bind() .setUUID(ID_AS_UUID, attachmentId.asUUID())) - .thenCompose(this::attachment) - .thenApply(optional -> logNotFound(attachmentId, logIfEmpty, optional)); - } - - private Optional<Attachment> logNotFound(AttachmentId attachmentId, boolean logIfEmpty, Optional<Attachment> optional) { - if (!optional.isPresent() && logIfEmpty) { - LOGGER.warn("Failed retrieving attachment {}", attachmentId); - } - return optional; + .thenCompose(this::attachment); } public CompletableFuture<Void> storeAttachment(Attachment attachment) { http://git-wip-us.apache.org/repos/asf/james-project/blob/683e2fa8/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java index a0cdc71..8c2b970 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java @@ -34,16 +34,15 @@ import org.apache.james.mailbox.model.Attachment; import org.apache.james.mailbox.model.AttachmentId; import org.apache.james.mailbox.store.mail.AttachmentMapper; import org.apache.james.util.FluentFutureStream; -import org.apache.james.util.OptionalUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.github.steveash.guavate.Guavate; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; public class CassandraAttachmentMapper implements AttachmentMapper { - - private static final boolean LOG_IF_EMPTY = true; - private static final boolean NO_LOG_IF_EMPTY = !LOG_IF_EMPTY; + private static final Logger LOGGER = LoggerFactory.getLogger(CassandraAttachmentMapper.class); private final CassandraAttachmentDAO attachmentDAO; private final CassandraAttachmentDAOV2 attachmentDAOV2; @@ -83,24 +82,20 @@ public class CassandraAttachmentMapper implements AttachmentMapper { Stream<CompletableFuture<Optional<Attachment>>> attachments = attachmentIds .stream() .distinct() - .map(id -> attachmentDAOV2.getAttachment(id, LOG_IF_EMPTY) - .thenCompose(v2Value -> fallbackToV1(id, v2Value, LOG_IF_EMPTY))); + .map(id -> attachmentDAOV2.getAttachment(id) + .thenCompose(v2Value -> fallbackToV1(id, v2Value)) + .thenApply(finalValue -> logNotFound(id, finalValue))); return FluentFutureStream - .of(attachments) - .flatMap(OptionalUtils::toStream) + .ofOptionals(attachments) .collect(Guavate.toImmutableList()); } private CompletionStage<Optional<Attachment>> fallbackToV1(AttachmentId attachmentId, Optional<Attachment> v2Value) { - return fallbackToV1(attachmentId, v2Value, NO_LOG_IF_EMPTY); - } - - private CompletionStage<Optional<Attachment>> fallbackToV1(AttachmentId attachmentId, Optional<Attachment> v2Value, boolean logIfEmpty) { if (v2Value.isPresent()) { return CompletableFuture.completedFuture(v2Value); } - return attachmentDAO.getAttachment(attachmentId, logIfEmpty); + return attachmentDAO.getAttachment(attachmentId); } @Override @@ -115,4 +110,11 @@ public class CassandraAttachmentMapper implements AttachmentMapper { .map(attachmentDAOV2::storeAttachment)) .join(); } + + private Optional<Attachment> logNotFound(AttachmentId attachmentId, Optional<Attachment> optional) { + if (!optional.isPresent()) { + LOGGER.warn("Failed retrieving attachment {}", attachmentId); + } + return optional; + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org