Browse Source

Fix handling of additional-hosts with Mongo

Closes gh-36441
pull/36766/head
Andy Wilkinson 3 years ago
parent
commit
fe123e5b10
  1. 1
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetails.java
  2. 11
      spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/PropertiesMongoConnectionDetailsTests.java

1
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()); builder.append(this.properties.getPort());
} }
if (this.properties.getAdditionalHosts() != null) { if (this.properties.getAdditionalHosts() != null) {
builder.append(",");
builder.append(String.join(",", this.properties.getAdditionalHosts())); builder.append(String.join(",", this.properties.getAdditionalHosts()));
} }
builder.append("/"); builder.append("/");

11
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; package org.springframework.boot.autoconfigure.mongo;
import java.util.List;
import com.mongodb.ConnectionString; import com.mongodb.ConnectionString;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -102,6 +104,15 @@ class PropertiesMongoConnectionDetailsTests {
assertThat(connectionString.getRequiredReplicaSetName()).isEqualTo("test"); 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() { private PropertiesMongoConnectionDetails createConnectionDetails() {
return new PropertiesMongoConnectionDetails(this.properties); return new PropertiesMongoConnectionDetails(this.properties);
} }

Loading…
Cancel
Save