From 51b56782a3f5249877abcdc5638c8f18d83b34d5 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 24 Nov 2017 10:58:58 +0000 Subject: [PATCH] Apply customizers to build when created embedded Mongo client Closes gh-11132 --- .../mongo/ReactiveMongoClientFactory.java | 1 + .../mongo/ReactiveMongoClientFactoryTests.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java index 548528a43b..3a9e4e1db5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java @@ -92,6 +92,7 @@ public class ReactiveMongoClientFactory { ClusterSettings clusterSettings = ClusterSettings.builder() .hosts(Collections.singletonList(new ServerAddress(host, port))).build(); builder.clusterSettings(clusterSettings); + customize(builder); return MongoClients.create(builder.build()); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java index e211887e2a..168ff7ed7f 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java @@ -161,6 +161,16 @@ public class ReactiveMongoClientFactoryTests { verify(customizer).customize(any(MongoClientSettings.Builder.class)); } + @Test + public void customizerIsInvokedForEmbeddedMongo() { + MongoProperties properties = new MongoProperties(); + this.environment.setProperty("local.mongo.port", "27017"); + MongoClientSettingsBuilderCustomizer customizer = mock( + MongoClientSettingsBuilderCustomizer.class); + createMongoClient(properties, this.environment, customizer); + verify(customizer).customize(any(MongoClientSettings.Builder.class)); + } + private MongoClient createMongoClient(MongoProperties properties) { return createMongoClient(properties, this.environment); }