From a15d48865784b82492e692dba4364245295152f3 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 28 Nov 2018 17:18:35 +0100 Subject: [PATCH] DATAMONGO-2148 - Polishing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add author tag. Add logging for ReactiveMongoTemplate.count(…) and findDistinct(…) operations. Fix variable names. Original pull request: #620. --- .../data/mongodb/core/MongoTemplate.java | 6 +++ .../mongodb/core/ReactiveMongoTemplate.java | 40 +++++++++++++------ .../src/test/resources/logback.xml | 8 ++-- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java index f03a68b7b..d6f1771e1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java @@ -150,6 +150,7 @@ import com.mongodb.client.result.UpdateResult; * @author Borislav Rangelov * @author duozhilin * @author Andreas Zink + * @author Cimon Lucas */ @SuppressWarnings("deprecation") public class MongoTemplate implements MongoOperations, ApplicationContextAware, IndexOperationsProvider { @@ -875,6 +876,11 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, MongoIterable result = execute(collectionName, (collection) -> { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Executing findDistinct using query {} for field: {} in collection: {}", + serializeToJsonSafely(mappedQuery), field, collectionName); + } + DistinctIterable iterable = collection.distinct(mappedFieldName, mappedQuery, mongoDriverCompatibleType); return query.getCollation().map(Collation::toMongoCollation).map(iterable::collation).orElse(iterable); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java index 81e7d821d..e5826ec66 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java @@ -496,11 +496,10 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati session.startTransaction(); } - return Flux - .usingWhen(Mono.just(session), // - s -> ReactiveMongoTemplate.this.withSession(action, s), // - ClientSession::commitTransaction, // - ClientSession::abortTransaction) // + return Flux.usingWhen(Mono.just(session), // + s -> ReactiveMongoTemplate.this.withSession(action, s), // + ClientSession::commitTransaction, // + ClientSession::abortTransaction) // .doFinally(signalType -> doFinally.accept(session)); }); } @@ -742,7 +741,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati * (non-Javadoc) * @see org.springframework.data.mongodb.core.ReactiveMongoOperations#exists(org.springframework.data.mongodb.core.query.Query, java.lang.Class, java.lang.String) */ - public Mono exists(final Query query, @Nullable Class entityClass, String collectionName) { + public Mono exists(Query query, @Nullable Class entityClass, String collectionName) { if (query == null) { throw new InvalidDataAccessApiUsageException("Query passed in to exist can't be null"); @@ -750,10 +749,14 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati return createFlux(collectionName, collection -> { - Document mappedQuery = queryMapper.getMappedObject(query.getQueryObject(), getPersistentEntity(entityClass)); - FindPublisher findPublisher = collection.find(mappedQuery, Document.class) + Document filter = queryMapper.getMappedObject(query.getQueryObject(), getPersistentEntity(entityClass)); + FindPublisher findPublisher = collection.find(filter, Document.class) .projection(new Document("_id", 1)); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("exists: {} in collection: {}", serializeToJsonSafely(filter), collectionName); + } + findPublisher = query.getCollation().map(Collation::toMongoCollation).map(findPublisher::collation) .orElse(findPublisher); @@ -835,6 +838,11 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati Flux result = execute(collectionName, collection -> { + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Executing findDistinct using query {} for field: {} in collection: {}", + serializeToJsonSafely(mappedQuery), field, collectionName); + } + DistinctPublisher publisher = collection.distinct(mappedFieldName, mappedQuery, mongoDriverCompatibleType); return query.getCollation().map(Collation::toMongoCollation).map(publisher::collation).orElse(publisher); @@ -1151,7 +1159,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati return createMono(collectionName, collection -> { - final Document Document = query == null ? null + Document filter = query == null ? null : queryMapper.getMappedObject(query.getQueryObject(), entityClass == null ? null : mappingContext.getPersistentEntity(entityClass)); @@ -1160,7 +1168,11 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati query.getCollation().map(Collation::toMongoCollation).ifPresent(options::collation); } - return collection.count(Document, options); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Executing count: {} in collection: {}", serializeToJsonSafely(filter), collectionName); + } + + return collection.count(filter, options); }); } @@ -3165,7 +3177,7 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati return createMono(collectionName, collection -> { - final Document Document = query == null ? null + Document filter = query == null ? null : delegate.queryMapper.getMappedObject(query.getQueryObject(), entityClass == null ? null : delegate.mappingContext.getPersistentEntity(entityClass)); @@ -3174,7 +3186,11 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati query.getCollation().map(Collation::toMongoCollation).ifPresent(options::collation); } - return collection.countDocuments(Document, options); + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("Executing count: {} in collection: {}", serializeToJsonSafely(filter), collectionName); + } + + return collection.countDocuments(filter, options); }); } } diff --git a/spring-data-mongodb/src/test/resources/logback.xml b/spring-data-mongodb/src/test/resources/logback.xml index 3c6add815..5296a2045 100644 --- a/spring-data-mongodb/src/test/resources/logback.xml +++ b/spring-data-mongodb/src/test/resources/logback.xml @@ -7,14 +7,14 @@ - - - + + - \ No newline at end of file +