Skip to content

Commit 4e07003

Browse files
committed
Polish "Use missing MongoClientOptions in MongoProperties"
Closes gh-6176
1 parent 59f9cfb commit 4e07003

File tree

2 files changed

+59
-10
lines changed

2 files changed

+59
-10
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoProperties.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -271,23 +271,23 @@ private Builder builder(MongoClientOptions options) {
271271
builder.dbDecoderFactory(options.getDbDecoderFactory());
272272
builder.dbEncoderFactory(options.getDbEncoderFactory());
273273
builder.description(options.getDescription());
274+
builder.heartbeatConnectTimeout(options.getHeartbeatConnectTimeout());
275+
builder.heartbeatFrequency(options.getHeartbeatFrequency());
276+
builder.heartbeatSocketTimeout(options.getHeartbeatSocketTimeout());
277+
builder.localThreshold(options.getLocalThreshold());
278+
builder.minConnectionsPerHost(options.getMinConnectionsPerHost());
279+
builder.minHeartbeatFrequency(options.getMinHeartbeatFrequency());
280+
builder.maxConnectionIdleTime(options.getMaxConnectionIdleTime());
281+
builder.maxConnectionLifeTime(options.getMaxConnectionLifeTime());
274282
builder.maxWaitTime(options.getMaxWaitTime());
275283
builder.readPreference(options.getReadPreference());
284+
builder.requiredReplicaSetName(options.getRequiredReplicaSetName());
276285
builder.socketFactory(options.getSocketFactory());
277286
builder.socketKeepAlive(options.isSocketKeepAlive());
278287
builder.socketTimeout(options.getSocketTimeout());
279288
builder.threadsAllowedToBlockForConnectionMultiplier(
280289
options.getThreadsAllowedToBlockForConnectionMultiplier());
281290
builder.writeConcern(options.getWriteConcern());
282-
builder.minConnectionsPerHost(options.getMinConnectionsPerHost());
283-
builder.maxConnectionIdleTime(options.getMaxConnectionIdleTime());
284-
builder.maxConnectionLifeTime(options.getMaxConnectionLifeTime());
285-
builder.heartbeatFrequency(options.getHeartbeatFrequency());
286-
builder.minHeartbeatFrequency(options.getMinHeartbeatFrequency());
287-
builder.heartbeatConnectTimeout(options.getHeartbeatConnectTimeout());
288-
builder.heartbeatSocketTimeout(options.getHeartbeatSocketTimeout());
289-
builder.localThreshold(options.getLocalThreshold());
290-
builder.requiredReplicaSetName(options.getRequiredReplicaSetName());
291291
}
292292
return builder;
293293
}

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoPropertiesTests.java

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2015 the original author or authors.
2+
* Copyright 2012-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121

2222
import com.mongodb.MongoClient;
23+
import com.mongodb.MongoClientOptions;
2324
import com.mongodb.MongoCredential;
2425
import com.mongodb.ServerAddress;
2526
import org.junit.Test;
@@ -120,6 +121,54 @@ public void uriCanBeCustomized() throws UnknownHostException {
120121
assertMongoCredential(credentialsList.get(0), "user", "secret", "test");
121122
}
122123

124+
@Test
125+
public void allMongoClientOptionsCanBeSet() throws UnknownHostException {
126+
MongoClientOptions mco = MongoClientOptions.builder()
127+
.alwaysUseMBeans(true)
128+
.connectionsPerHost(101)
129+
.connectTimeout(10001)
130+
.cursorFinalizerEnabled(false)
131+
.description("test")
132+
.maxWaitTime(120001)
133+
.socketKeepAlive(true)
134+
.socketTimeout(1000)
135+
.threadsAllowedToBlockForConnectionMultiplier(6)
136+
.minConnectionsPerHost(0)
137+
.maxConnectionIdleTime(60000)
138+
.maxConnectionLifeTime(60000)
139+
.heartbeatFrequency(10001)
140+
.minHeartbeatFrequency(501)
141+
.heartbeatConnectTimeout(20001)
142+
.heartbeatSocketTimeout(20001)
143+
.localThreshold(20)
144+
.requiredReplicaSetName("testReplicaSetName")
145+
.build();
146+
147+
MongoProperties properties = new MongoProperties();
148+
MongoClient client = properties.createMongoClient(mco, null);
149+
MongoClientOptions wrappedMco = client.getMongoClientOptions();
150+
151+
assertThat(wrappedMco.isAlwaysUseMBeans(), equalTo(mco.isAlwaysUseMBeans()));
152+
assertThat(wrappedMco.getConnectionsPerHost(), equalTo(mco.getConnectionsPerHost()));
153+
assertThat(wrappedMco.getConnectTimeout(), equalTo(mco.getConnectTimeout()));
154+
assertThat(wrappedMco.isCursorFinalizerEnabled(), equalTo(mco.isCursorFinalizerEnabled()));
155+
assertThat(wrappedMco.getDescription(), equalTo(mco.getDescription()));
156+
assertThat(wrappedMco.getMaxWaitTime(), equalTo(mco.getMaxWaitTime()));
157+
assertThat(wrappedMco.getSocketTimeout(), equalTo(mco.getSocketTimeout()));
158+
assertThat(wrappedMco.isSocketKeepAlive(), equalTo(mco.isSocketKeepAlive()));
159+
assertThat(wrappedMco.getThreadsAllowedToBlockForConnectionMultiplier(), equalTo(
160+
mco.getThreadsAllowedToBlockForConnectionMultiplier()));
161+
assertThat(wrappedMco.getMinConnectionsPerHost(), equalTo(mco.getMinConnectionsPerHost()));
162+
assertThat(wrappedMco.getMaxConnectionIdleTime(), equalTo(mco.getMaxConnectionIdleTime()));
163+
assertThat(wrappedMco.getMaxConnectionLifeTime(), equalTo(mco.getMaxConnectionLifeTime()));
164+
assertThat(wrappedMco.getHeartbeatFrequency(), equalTo(mco.getHeartbeatFrequency()));
165+
assertThat(wrappedMco.getMinHeartbeatFrequency(), equalTo(mco.getMinHeartbeatFrequency()));
166+
assertThat(wrappedMco.getHeartbeatConnectTimeout(), equalTo(mco.getHeartbeatConnectTimeout()));
167+
assertThat(wrappedMco.getHeartbeatSocketTimeout(), equalTo(mco.getHeartbeatSocketTimeout()));
168+
assertThat(wrappedMco.getLocalThreshold(), equalTo(mco.getLocalThreshold()));
169+
assertThat(wrappedMco.getRequiredReplicaSetName(), equalTo(mco.getRequiredReplicaSetName()));
170+
}
171+
123172
private void assertServerAddress(ServerAddress serverAddress, String expectedHost,
124173
int expectedPort) {
125174
assertThat(serverAddress.getHost(), equalTo(expectedHost));

0 commit comments

Comments
 (0)