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
47f4bb0d
Commit
47f4bb0d
authored
Jul 10, 2019
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.1.x'
Closes gh-17481
parents
2208dc1b
50fe7a0d
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
8 deletions
+69
-8
MongoClientDependsOnBeanFactoryPostProcessor.java
...a/mongo/MongoClientDependsOnBeanFactoryPostProcessor.java
+17
-0
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor.java
...eStreamsMongoClientDependsOnBeanFactoryPostProcessor.java
+17
-0
EmbeddedMongoAutoConfiguration.java
...figure/mongo/embedded/EmbeddedMongoAutoConfiguration.java
+10
-8
EmbeddedMongoAutoConfigurationTests.java
...e/mongo/embedded/EmbeddedMongoAutoConfigurationTests.java
+25
-0
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoClientDependsOnBeanFactoryPostProcessor.java
View file @
47f4bb0d
...
@@ -36,8 +36,25 @@ import org.springframework.data.mongodb.core.MongoClientFactoryBean;
...
@@ -36,8 +36,25 @@ import org.springframework.data.mongodb.core.MongoClientFactoryBean;
@Order
(
Ordered
.
LOWEST_PRECEDENCE
)
@Order
(
Ordered
.
LOWEST_PRECEDENCE
)
public
class
MongoClientDependsOnBeanFactoryPostProcessor
extends
AbstractDependsOnBeanFactoryPostProcessor
{
public
class
MongoClientDependsOnBeanFactoryPostProcessor
extends
AbstractDependsOnBeanFactoryPostProcessor
{
/**
* Creates a new {@code MongoClientDependsOnBeanFactoryPostProcessor} that will set up
* dependencies upon beans with the given names.
* @param dependsOn names of the beans to depend upon
* @deprecated since 2.1.7 in favor of
* {@link #MongoClientDependsOnBeanFactoryPostProcessor}
*/
@Deprecated
public
MongoClientDependsOnBeanFactoryPostProcessor
(
String
...
dependsOn
)
{
public
MongoClientDependsOnBeanFactoryPostProcessor
(
String
...
dependsOn
)
{
super
(
MongoClient
.
class
,
MongoClientFactoryBean
.
class
,
dependsOn
);
super
(
MongoClient
.
class
,
MongoClientFactoryBean
.
class
,
dependsOn
);
}
}
/**
* Creates a new {@code MongoClientDependsOnBeanFactoryPostProcessor} that will set up
* dependencies upon beans with the given types.
* @param dependsOn types of the beans to depend upon
*/
public
MongoClientDependsOnBeanFactoryPostProcessor
(
Class
<?>...
dependsOn
)
{
super
(
MongoClient
.
class
,
MongoClientFactoryBean
.
class
,
dependsOn
);
}
}
}
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor.java
View file @
47f4bb0d
...
@@ -37,8 +37,25 @@ import org.springframework.data.mongodb.core.ReactiveMongoClientFactoryBean;
...
@@ -37,8 +37,25 @@ import org.springframework.data.mongodb.core.ReactiveMongoClientFactoryBean;
public
class
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
public
class
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
extends
AbstractDependsOnBeanFactoryPostProcessor
{
extends
AbstractDependsOnBeanFactoryPostProcessor
{
/**
* Creates a new {@code ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor}
* that will set up dependencies upon beans with the given names.
* @param dependsOn names of the beans to depend upon
* @deprecated since 2.1.7 in favor of
* {@link #ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor}
*/
@Deprecated
public
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
(
String
...
dependsOn
)
{
public
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
(
String
...
dependsOn
)
{
super
(
MongoClient
.
class
,
ReactiveMongoClientFactoryBean
.
class
,
dependsOn
);
super
(
MongoClient
.
class
,
ReactiveMongoClientFactoryBean
.
class
,
dependsOn
);
}
}
/**
* Creates a new {@code ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor}
* that will set up dependencies upon beans with the given types.
* @param dependsOn types of the beans to depend upon
*/
public
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
(
Class
<?>...
dependsOn
)
{
super
(
MongoClient
.
class
,
ReactiveMongoClientFactoryBean
.
class
,
dependsOn
);
}
}
}
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/embedded/EmbeddedMongoAutoConfiguration.java
View file @
47f4bb0d
...
@@ -77,6 +77,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoClientFactoryBean;
...
@@ -77,6 +77,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoClientFactoryBean;
* @author Andy Wilkinson
* @author Andy Wilkinson
* @author Yogesh Lonkar
* @author Yogesh Lonkar
* @author Mark Paluch
* @author Mark Paluch
* @author Issam El-atif
* @since 1.3.0
* @since 1.3.0
*/
*/
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
...
@@ -211,30 +212,31 @@ public class EmbeddedMongoAutoConfiguration {
...
@@ -211,30 +212,31 @@ public class EmbeddedMongoAutoConfiguration {
}
}
/**
/**
* Additional configuration to ensure that {@link MongoClient} beans depend on
the
* Additional configuration to ensure that {@link MongoClient} beans depend on
any
* {@
code embeddedMongoServer} bean
.
* {@
link MongodExecutable} beans
.
*/
*/
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
@ConditionalOnClass
({
MongoClient
.
class
,
MongoClientFactoryBean
.
class
})
@ConditionalOnClass
({
MongoClient
.
class
,
MongoClientFactoryBean
.
class
})
protected
static
class
EmbeddedMongoDependencyConfiguration
extends
MongoClientDependsOnBeanFactoryPostProcessor
{
protected
static
class
EmbeddedMongoDependencyConfiguration
extends
MongoClientDependsOnBeanFactoryPostProcessor
{
public
EmbeddedMongoDependencyConfiguration
()
{
EmbeddedMongoDependencyConfiguration
()
{
super
(
"embeddedMongoServer"
);
super
(
MongodExecutable
.
class
);
}
}
}
}
/**
/**
* Additional configuration to ensure that {@link MongoClient} beans depend on the
* Additional configuration to ensure that
* {@code embeddedMongoServer} bean.
* {@link com.mongodb.reactivestreams.client.MongoClient} beans depend on any
* {@link MongodExecutable} beans.
*/
*/
@Configuration
(
proxyBeanMethods
=
false
)
@Configuration
(
proxyBeanMethods
=
false
)
@ConditionalOnClass
({
com
.
mongodb
.
reactivestreams
.
client
.
MongoClient
.
class
,
ReactiveMongoClientFactoryBean
.
class
})
@ConditionalOnClass
({
com
.
mongodb
.
reactivestreams
.
client
.
MongoClient
.
class
,
ReactiveMongoClientFactoryBean
.
class
})
protected
static
class
EmbeddedReactiveMongoDependencyConfiguration
protected
static
class
EmbeddedReactiveMongoDependencyConfiguration
extends
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
{
extends
ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
{
public
EmbeddedReactiveMongoDependencyConfiguration
()
{
EmbeddedReactiveMongoDependencyConfiguration
()
{
super
(
"embeddedMongoServer"
);
super
(
MongodExecutable
.
class
);
}
}
}
}
...
...
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/mongo/embedded/EmbeddedMongoAutoConfigurationTests.java
View file @
47f4bb0d
...
@@ -20,10 +20,12 @@ import java.io.File;
...
@@ -20,10 +20,12 @@ import java.io.File;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.file.Path
;
import
java.nio.file.Path
;
import
java.util.EnumSet
;
import
java.util.EnumSet
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
com.mongodb.MongoClient
;
import
com.mongodb.MongoClient
;
import
de.flapdoodle.embed.mongo.MongodExecutable
;
import
de.flapdoodle.embed.mongo.MongodExecutable
;
import
de.flapdoodle.embed.mongo.MongodStarter
;
import
de.flapdoodle.embed.mongo.config.IMongodConfig
;
import
de.flapdoodle.embed.mongo.config.IMongodConfig
;
import
de.flapdoodle.embed.mongo.config.Storage
;
import
de.flapdoodle.embed.mongo.config.Storage
;
import
de.flapdoodle.embed.mongo.distribution.Feature
;
import
de.flapdoodle.embed.mongo.distribution.Feature
;
...
@@ -37,6 +39,7 @@ import org.junit.jupiter.api.io.TempDir;
...
@@ -37,6 +39,7 @@ import org.junit.jupiter.api.io.TempDir;
import
org.springframework.beans.DirectFieldAccessor
;
import
org.springframework.beans.DirectFieldAccessor
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.config.BeanDefinition
;
import
org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration
;
import
org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration
;
import
org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
;
...
@@ -56,6 +59,7 @@ import static org.assertj.core.api.Assertions.assertThat;
...
@@ -56,6 +59,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Henryk Konsek
* @author Henryk Konsek
* @author Andy Wilkinson
* @author Andy Wilkinson
* @author Stephane Nicoll
* @author Stephane Nicoll
* @author Issam El-atif
*/
*/
class
EmbeddedMongoAutoConfigurationTests
{
class
EmbeddedMongoAutoConfigurationTests
{
...
@@ -186,6 +190,16 @@ class EmbeddedMongoAutoConfigurationTests {
...
@@ -186,6 +190,16 @@ class EmbeddedMongoAutoConfigurationTests {
assertThat
(
this
.
context
.
getBean
(
MongodExecutable
.
class
).
isRegisteredJobKiller
()).
isFalse
();
assertThat
(
this
.
context
.
getBean
(
MongodExecutable
.
class
).
isRegisteredJobKiller
()).
isFalse
();
}
}
@Test
void
customMongoServerConfiguration
()
{
load
(
CustomMongoConfiguration
.
class
);
Map
<
String
,
MongoClient
>
mongoClients
=
this
.
context
.
getBeansOfType
(
MongoClient
.
class
);
for
(
String
mongoClientBeanName
:
mongoClients
.
keySet
())
{
BeanDefinition
beanDefinition
=
this
.
context
.
getBeanFactory
().
getBeanDefinition
(
mongoClientBeanName
);
assertThat
(
beanDefinition
.
getDependsOn
()).
contains
(
"customMongoServer"
);
}
}
private
void
assertVersionConfiguration
(
String
configuredVersion
,
String
expectedVersion
)
{
private
void
assertVersionConfiguration
(
String
configuredVersion
,
String
expectedVersion
)
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
=
new
AnnotationConfigApplicationContext
();
TestPropertyValues
.
of
(
"spring.data.mongodb.port=0"
).
applyTo
(
this
.
context
);
TestPropertyValues
.
of
(
"spring.data.mongodb.port=0"
).
applyTo
(
this
.
context
);
...
@@ -248,4 +262,15 @@ class EmbeddedMongoAutoConfigurationTests {
...
@@ -248,4 +262,15 @@ class EmbeddedMongoAutoConfigurationTests {
}
}
@Configuration
(
proxyBeanMethods
=
false
)
static
class
CustomMongoConfiguration
{
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"stop"
)
MongodExecutable
customMongoServer
(
IRuntimeConfig
runtimeConfig
,
IMongodConfig
mongodConfig
)
{
MongodStarter
mongodStarter
=
MongodStarter
.
getInstance
(
runtimeConfig
);
return
mongodStarter
.
prepare
(
mongodConfig
);
}
}
}
}
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