From a33aece85d8fb23d5ef1af87d01d043e844593e9 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 21 Jan 2021 11:22:44 +0100 Subject: [PATCH] Allow access to mongoDatabaseFactory used in ReactiveMongoTemplate. By offering a getter method for the ReactiveMongoDatabaseFactory users subclassing ReactiveMongoTemplate could evaluate the current transaction state via ReactiveMongoDatabaseUtils.isTransactionActive(getDatabaseFactory()). This change also aligns the reactive and imperative template implementation in that regard. Closes #3540 Original pull request: #3541. --- .../data/mongodb/core/MongoTemplate.java | 14 +++++++++++++- .../data/mongodb/core/ReactiveMongoTemplate.java | 8 ++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) 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 f43bec7a6..0591484c8 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 @@ -28,7 +28,6 @@ import org.bson.Document; import org.bson.conversions.Bson; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -3463,7 +3462,20 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware, } } + /** + * @deprecated since 3.1.4. Use {@link #getMongoDatabaseFactory()} instead. + * @return the {@link MongoDatabaseFactory} in use. + */ + @Deprecated public MongoDatabaseFactory getMongoDbFactory() { + return getMongoDatabaseFactory(); + } + + /** + * @return the {@link MongoDatabaseFactory} in use. + * @since 3.1.4 + */ + public MongoDatabaseFactory getMongoDatabaseFactory() { return mongoDbFactory; } 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 a73ff5ca7..cb9bbd5b9 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 @@ -2716,6 +2716,14 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati return potentiallyForceAcknowledgedWrite(wc); } + /** + * @return the {@link MongoDatabaseFactory} in use. + * @since 3.1.4 + */ + public ReactiveMongoDatabaseFactory getMongoDatabaseFactory() { + return mongoDatabaseFactory; + } + @Nullable private WriteConcern potentiallyForceAcknowledgedWrite(@Nullable WriteConcern wc) {