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
fe7bbbe8
Commit
fe7bbbe8
authored
Sep 15, 2016
by
Phillip Webb
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6882 from olivergierke/issue/6881
* pr/6882: Use default simple types with MongoMappingContext
parents
f38deada
0860ad4f
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
11 deletions
+31
-11
MongoDataAutoConfiguration.java
.../autoconfigure/data/mongo/MongoDataAutoConfiguration.java
+13
-11
MongoDataAutoConfigurationTests.java
...configure/data/mongo/MongoDataAutoConfigurationTests.java
+18
-0
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfiguration.java
View file @
fe7bbbe8
...
...
@@ -17,6 +17,7 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
mongo
;
import
java.net.UnknownHostException
;
import
java.util.Collections
;
import
com.mongodb.DB
;
import
com.mongodb.Mongo
;
...
...
@@ -24,7 +25,6 @@ import com.mongodb.MongoClient;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.BeanFactory
;
import
org.springframework.beans.factory.NoSuchBeanDefinitionException
;
import
org.springframework.boot.autoconfigure.AutoConfigureAfter
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
...
...
@@ -103,24 +103,19 @@ public class MongoDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
(
MongoConverter
.
class
)
public
MappingMongoConverter
mappingMongoConverter
(
MongoDbFactory
factory
,
MongoMappingContext
context
,
BeanFactory
beanFactory
)
{
MongoMappingContext
context
,
BeanFactory
beanFactory
,
CustomConversions
conversions
)
{
DbRefResolver
dbRefResolver
=
new
DefaultDbRefResolver
(
factory
);
MappingMongoConverter
mappingConverter
=
new
MappingMongoConverter
(
dbRefResolver
,
context
);
try
{
mappingConverter
.
setCustomConversions
(
beanFactory
.
getBean
(
CustomConversions
.
class
));
}
catch
(
NoSuchBeanDefinitionException
ex
)
{
// Ignore
}
mappingConverter
.
setCustomConversions
(
conversions
);
return
mappingConverter
;
}
@Bean
@ConditionalOnMissingBean
public
MongoMappingContext
mongoMappingContext
(
BeanFactory
beanFactory
)
throws
ClassNotFoundException
{
public
MongoMappingContext
mongoMappingContext
(
BeanFactory
beanFactory
,
CustomConversions
conversions
)
throws
ClassNotFoundException
{
MongoMappingContext
context
=
new
MongoMappingContext
();
context
.
setInitialEntitySet
(
new
EntityScanner
(
this
.
applicationContext
)
.
scan
(
Document
.
class
,
Persistent
.
class
));
...
...
@@ -129,6 +124,7 @@ public class MongoDataAutoConfiguration {
context
.
setFieldNamingStrategy
(
(
FieldNamingStrategy
)
BeanUtils
.
instantiate
(
strategyClass
));
}
context
.
setSimpleTypeHolder
(
conversions
.
getSimpleTypeHolder
());
return
context
;
}
...
...
@@ -141,6 +137,12 @@ public class MongoDataAutoConfiguration {
mongoTemplate
.
getConverter
());
}
@Bean
@ConditionalOnMissingBean
public
CustomConversions
customConversions
()
{
return
new
CustomConversions
(
Collections
.
emptyList
());
}
/**
* {@link MongoDbFactory} decorator to respect
* {@link MongoProperties#getGridFsDatabase()} if set.
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoDataAutoConfigurationTests.java
View file @
fe7bbbe8
...
...
@@ -16,6 +16,7 @@
package
org
.
springframework
.
boot
.
autoconfigure
.
data
.
mongo
;
import
java.time.LocalDateTime
;
import
java.util.Arrays
;
import
java.util.Set
;
...
...
@@ -44,6 +45,7 @@ import org.springframework.data.mapping.model.PropertyNameFieldNamingStrategy;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.convert.CustomConversions
;
import
org.springframework.data.mongodb.core.mapping.MongoMappingContext
;
import
org.springframework.data.mongodb.core.mapping.MongoPersistentEntity
;
import
org.springframework.data.mongodb.gridfs.GridFsTemplate
;
import
org.springframework.test.util.ReflectionTestUtils
;
...
...
@@ -156,6 +158,17 @@ public class MongoDataAutoConfigurationTests {
assertThat
(
initialEntitySet
).
containsOnly
(
City
.
class
,
Country
.
class
);
}
@Test
public
void
registersDefaultSimpleTypesWithMappingContext
()
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
this
.
context
.
register
(
MongoAutoConfiguration
.
class
,
MongoDataAutoConfiguration
.
class
);
this
.
context
.
refresh
();
MongoMappingContext
context
=
this
.
context
.
getBean
(
MongoMappingContext
.
class
);
MongoPersistentEntity
<?>
entity
=
context
.
getPersistentEntity
(
Sample
.
class
);
assertThat
(
entity
.
getPersistentProperty
(
"date"
).
isEntity
()).
isFalse
();
}
public
void
testFieldNamingStrategy
(
String
strategy
,
Class
<?
extends
FieldNamingStrategy
>
expectedType
)
{
this
.
context
=
new
AnnotationConfigApplicationContext
();
...
...
@@ -205,4 +218,9 @@ public class MongoDataAutoConfigurationTests {
}
static
class
Sample
{
LocalDateTime
date
;
}
}
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