Fix handling of additional-hosts with Mongo

Closes gh-36441
This commit is contained in:
Andy Wilkinson 2023-07-18 21:15:20 +01:00
parent 28b5b7a218
commit fe123e5b10
2 changed files with 12 additions and 0 deletions

View File

@ -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("/");

View File

@ -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);
}