From 140d5440928e8fe39bd2660a7bdb09fc1e5ccd0f Mon Sep 17 00:00:00 2001 From: Nikolay Rybak Date: Thu, 9 Aug 2018 18:50:40 +0300 Subject: [PATCH] Propagate retryWrites flag to ReactiveMongoClient Add retryWrites flag to set of flags propagated from connection string to ReactiveMongoClient. Regular MongoClientFactory relies of MongoClientURI class that propagates all flags in its getOptions() method. --- .../autoconfigure/mongo/ReactiveMongoClientFactory.java | 1 + .../mongo/ReactiveMongoClientFactoryTests.java | 8 ++++++++ 2 files changed, 9 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 f18cf8df1a8f..2d9c20dc4975 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 @@ -159,6 +159,7 @@ private Builder createBuilder(MongoClientSettings settings, if (connection.getApplicationName() != null) { builder.applicationName(connection.getApplicationName()); } + builder.retryWrites(connection.getRetryWrites()); return builder; } 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 edcf05945d6c..3ea095b7470a 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 @@ -112,6 +112,14 @@ public void uriCanBeCustomized() { assertMongoCredential(credential, "user", "secret", "test"); } + @Test + public void retryWritesIsPropagatedFromUri() { + MongoProperties properties = new MongoProperties(); + properties.setUri("mongodb://localhost/test?retryWrites=true"); + MongoClient client = createMongoClient(properties); + assertThat(client.getSettings().getRetryWrites()).isTrue(); + } + @Test public void uriCannotBeSetWithCredentials() { MongoProperties properties = new MongoProperties();