From fe123e5b101cfc0fa9a779dcbebb41b2dcac6a2c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 18 Jul 2023 21:15:20 +0100 Subject: [PATCH] Fix handling of additional-hosts with Mongo Closes gh-36441 --- .../mongo/PropertiesMongoConnectionDetails.java | 1 + .../mongo/PropertiesMongoConnectionDetailsTests.java | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java index 218ce0928b4..56b4bc470d1 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java @@ -61,6 +61,7 @@ public class PropertiesMongoConnectionDetails implements MongoConnectionDetails builder.append(this.properties.getPort()); } if (this.properties.getAdditionalHosts() != null) { + builder.append(","); builder.append(String.join(",", this.properties.getAdditionalHosts())); } builder.append("/"); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java index 1a1372f4576..6d73d9d7ba5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java @@ -16,6 +16,8 @@ package org.springframework.boot.autoconfigure.mongo; +import java.util.List; + import com.mongodb.ConnectionString; import org.junit.jupiter.api.Test; @@ -102,6 +104,15 @@ class PropertiesMongoConnectionDetailsTests { assertThat(connectionString.getRequiredReplicaSetName()).isEqualTo("test"); } + @Test + void whenAdditionalHostsAreConfiguredThenTheyAreIncludedInHostsOfConnectionString() { + this.properties.setHost("mongo1.example.com"); + this.properties.setAdditionalHosts(List.of("mongo2.example.com", "mongo3.example.com")); + ConnectionString connectionString = getConnectionString(); + assertThat(connectionString.getHosts()).containsExactly("mongo1.example.com", "mongo2.example.com", + "mongo3.example.com"); + } + private PropertiesMongoConnectionDetails createConnectionDetails() { return new PropertiesMongoConnectionDetails(this.properties); }