Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
eaa34874
Commit
eaa34874
authored
May 31, 2017
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish "Allow customization of MongoClientSettings.Builder"
Closes gh-9341
parent
eeb96107
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
43 deletions
+25
-43
MongoClientSettingsBuilderCustomizer.java
...configure/mongo/MongoClientSettingsBuilderCustomizer.java
+2
-2
ReactiveMongoClientFactory.java
.../boot/autoconfigure/mongo/ReactiveMongoClientFactory.java
+4
-5
MongoReactiveAutoConfigurationTests.java
...oconfigure/mongo/MongoReactiveAutoConfigurationTests.java
+2
-33
ReactiveMongoClientFactoryTests.java
.../autoconfigure/mongo/ReactiveMongoClientFactoryTests.java
+17
-3
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/MongoClientSettingsBuilderCustomizer.java
View file @
eaa34874
...
@@ -31,8 +31,8 @@ public interface MongoClientSettingsBuilderCustomizer {
...
@@ -31,8 +31,8 @@ public interface MongoClientSettingsBuilderCustomizer {
/**
/**
* Customize the {@link Builder}.
* Customize the {@link Builder}.
* @param
s
ettingsBuilder the builder to customize
* @param
clientS
ettingsBuilder the builder to customize
*/
*/
void
customize
(
Builder
s
ettingsBuilder
);
void
customize
(
Builder
clientS
ettingsBuilder
);
}
}
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactory.java
View file @
eaa34874
...
@@ -54,7 +54,8 @@ public class ReactiveMongoClientFactory {
...
@@ -54,7 +54,8 @@ public class ReactiveMongoClientFactory {
List
<
MongoClientSettingsBuilderCustomizer
>
builderCustomizers
)
{
List
<
MongoClientSettingsBuilderCustomizer
>
builderCustomizers
)
{
this
.
properties
=
properties
;
this
.
properties
=
properties
;
this
.
environment
=
environment
;
this
.
environment
=
environment
;
this
.
builderCustomizers
=
builderCustomizers
;
this
.
builderCustomizers
=
(
builderCustomizers
!=
null
?
builderCustomizers
:
Collections
.
emptyList
());
}
}
/**
/**
...
@@ -157,10 +158,8 @@ public class ReactiveMongoClientFactory {
...
@@ -157,10 +158,8 @@ public class ReactiveMongoClientFactory {
}
}
private
void
customize
(
MongoClientSettings
.
Builder
builder
)
{
private
void
customize
(
MongoClientSettings
.
Builder
builder
)
{
if
(
this
.
builderCustomizers
!=
null
)
{
for
(
MongoClientSettingsBuilderCustomizer
customizer
:
this
.
builderCustomizers
)
{
for
(
MongoClientSettingsBuilderCustomizer
customizer
:
this
.
builderCustomizers
)
{
customizer
.
customize
(
builder
);
customizer
.
customize
(
builder
);
}
}
}
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/MongoReactiveAutoConfigurationTests.java
View file @
eaa34874
...
@@ -20,7 +20,6 @@ import java.util.concurrent.TimeUnit;
...
@@ -20,7 +20,6 @@ import java.util.concurrent.TimeUnit;
import
com.mongodb.ReadPreference
;
import
com.mongodb.ReadPreference
;
import
com.mongodb.async.client.MongoClientSettings
;
import
com.mongodb.async.client.MongoClientSettings
;
import
com.mongodb.async.client.MongoClientSettings.Builder
;
import
com.mongodb.connection.SocketSettings
;
import
com.mongodb.connection.SocketSettings
;
import
com.mongodb.connection.StreamFactory
;
import
com.mongodb.connection.StreamFactory
;
import
com.mongodb.connection.StreamFactoryFactory
;
import
com.mongodb.connection.StreamFactoryFactory
;
...
@@ -38,7 +37,6 @@ import static org.assertj.core.api.Assertions.assertThat;
...
@@ -38,7 +37,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
mockito
.
BDDMockito
.
given
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
/**
/**
* Tests for {@link MongoReactiveAutoConfiguration}.
* Tests for {@link MongoReactiveAutoConfiguration}.
...
@@ -108,21 +106,6 @@ public class MongoReactiveAutoConfigurationTests {
...
@@ -108,21 +106,6 @@ public class MongoReactiveAutoConfigurationTests {
.
isSameAs
(
this
.
context
.
getBean
(
"myStreamFactoryFactory"
));
.
isSameAs
(
this
.
context
.
getBean
(
"myStreamFactoryFactory"
));
}
}
@Test
public
void
customizerGetsInvoked
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
TestPropertyValues
.
of
(
"spring.data.mongodb.uri:mongodb://localhost/test"
).
applyTo
(
this
.
context
);
this
.
context
.
register
(
PropertyPlaceholderAutoConfiguration
.
class
,
MongoReactiveAutoConfiguration
.
class
,
MockCustomizerConfig
.
class
);
this
.
context
.
refresh
();
assertThat
(
this
.
context
.
getBeanNamesForType
(
MongoClient
.
class
).
length
)
.
isEqualTo
(
1
);
MongoClientSettingsBuilderCustomizer
customizer
=
this
.
context
.
getBean
(
MongoClientSettingsBuilderCustomizer
.
class
);
verify
(
customizer
).
customize
(
any
(
Builder
.
class
));
}
@Test
@Test
public
void
customizerOverridesAutoConfig
()
{
public
void
customizerOverridesAutoConfig
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
=
new
AnnotationConfigApplicationContext
();
...
@@ -171,27 +154,13 @@ public class MongoReactiveAutoConfigurationTests {
...
@@ -171,27 +154,13 @@ public class MongoReactiveAutoConfigurationTests {
}
}
@Configuration
static
class
MockCustomizerConfig
{
@Bean
public
MongoClientSettingsBuilderCustomizer
customizer
()
{
return
mock
(
MongoClientSettingsBuilderCustomizer
.
class
);
}
}
@Configuration
@Configuration
static
class
SimpleCustomizerConfig
{
static
class
SimpleCustomizerConfig
{
@Bean
@Bean
public
MongoClientSettingsBuilderCustomizer
customizer
()
{
public
MongoClientSettingsBuilderCustomizer
customizer
()
{
return
new
MongoClientSettingsBuilderCustomizer
()
{
return
clientSettingsBuilder
->
@Override
clientSettingsBuilder
.
applicationName
(
"overridden-name"
);
public
void
customize
(
MongoClientSettings
.
Builder
settingsBuilder
)
{
settingsBuilder
.
applicationName
(
"overridden-name"
);
}
};
}
}
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/ReactiveMongoClientFactoryTests.java
View file @
eaa34874
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
package
org
.
springframework
.
boot
.
autoconfigure
.
mongo
;
import
java.net.UnknownHostException
;
import
java.net.UnknownHostException
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
com.mongodb.MongoCredential
;
import
com.mongodb.MongoCredential
;
...
@@ -32,6 +33,9 @@ import org.springframework.core.env.Environment;
...
@@ -32,6 +33,9 @@ import org.springframework.core.env.Environment;
import
org.springframework.mock.env.MockEnvironment
;
import
org.springframework.mock.env.MockEnvironment
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
/**
/**
* Tests for {@link ReactiveMongoClientFactory}.
* Tests for {@link ReactiveMongoClientFactory}.
...
@@ -148,14 +152,24 @@ public class ReactiveMongoClientFactoryTests {
...
@@ -148,14 +152,24 @@ public class ReactiveMongoClientFactoryTests {
assertServerAddress
(
allAddresses
.
get
(
0
),
"localhost"
,
4000
);
assertServerAddress
(
allAddresses
.
get
(
0
),
"localhost"
,
4000
);
}
}
@Test
public
void
customizerIsInvoked
()
{
MongoProperties
properties
=
new
MongoProperties
();
MongoClientSettingsBuilderCustomizer
customizer
=
mock
(
MongoClientSettingsBuilderCustomizer
.
class
);
createMongoClient
(
properties
,
this
.
environment
,
customizer
);
verify
(
customizer
).
customize
(
any
(
MongoClientSettings
.
Builder
.
class
));
}
private
MongoClient
createMongoClient
(
MongoProperties
properties
)
{
private
MongoClient
createMongoClient
(
MongoProperties
properties
)
{
return
createMongoClient
(
properties
,
this
.
environment
);
return
createMongoClient
(
properties
,
this
.
environment
);
}
}
private
MongoClient
createMongoClient
(
MongoProperties
properties
,
private
MongoClient
createMongoClient
(
MongoProperties
properties
,
Environment
environment
)
{
Environment
environment
,
return
new
ReactiveMongoClientFactory
(
properties
,
environment
,
null
)
MongoClientSettingsBuilderCustomizer
...
customizers
)
{
.
createMongoClient
(
null
);
return
new
ReactiveMongoClientFactory
(
properties
,
environment
,
Arrays
.
asList
(
customizers
)).
createMongoClient
(
null
);
}
}
private
List
<
ServerAddress
>
extractServerAddresses
(
MongoClient
client
)
{
private
List
<
ServerAddress
>
extractServerAddresses
(
MongoClient
client
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment