From 02eaa4cbd2bec2c80c1bd8cf855c35ee53b8b2c9 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 fdc42119f..89ff6b3d6 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; @@ -3454,7 +3453,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 b81a87fa8..48a11ffa0 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 @@ -2730,6 +2730,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) {