@ -34,8 +34,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -34,8 +34,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean ;
import org.springframework.boot.context.properties.EnableConfigurationProperties ;
import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails ;
import org.springframework.boot.mongodb.autoconfigure.MongoConnectionDetails.GridFs ;
import org.springframework.boot.mongodb.autoconfigure.MongoProperties ;
import org.springframework.boot.mongodb.autoconfigure.MongoProperties.Gridfs ;
import org.springframework.boot.mongodb.autoconfigure.MongoReactiveAutoConfiguration ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Import ;
@ -76,18 +76,19 @@ import org.springframework.util.StringUtils;
@@ -76,18 +76,19 @@ import org.springframework.util.StringUtils;
@Import ( MongoDataConfiguration . class )
public final class MongoReactiveDataAutoConfiguration {
private final MongoConnectionDetails connectionDetail s ;
private final MongoProperties propertie s ;
MongoReactiveDataAutoConfiguration ( MongoConnectionDetails connectionDetail s ) {
this . connectionDetails = connectionDetail s;
MongoReactiveDataAutoConfiguration ( MongoProperties propertie s ) {
this . properties = propertie s;
}
@Bean
@ConditionalOnMissingBean ( ReactiveMongoDatabaseFactory . class )
SimpleReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory ( MongoClient mongo , MongoProperties properties ) {
String database = properties . getDatabase ( ) ;
SimpleReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory ( MongoClient mongo ,
MongoConnectionDetails connectionDetails ) {
String database = this . properties . getDatabase ( ) ;
if ( database = = null ) {
database = this . connectionDetails . getConnectionString ( ) . getDatabase ( ) ;
database = connectionDetails . getConnectionString ( ) . getDatabase ( ) ;
}
Assert . hasText ( database , "Database name must not be empty" ) ;
return new SimpleReactiveMongoDatabaseFactory ( mongo , database ) ;
@ -111,25 +112,23 @@ public final class MongoReactiveDataAutoConfiguration {
@@ -111,25 +112,23 @@ public final class MongoReactiveDataAutoConfiguration {
ReactiveGridFsTemplate reactiveGridFsTemplate ( ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory ,
MappingMongoConverter mappingMongoConverter , DataBufferFactory dataBufferFactory ) {
return new ReactiveGridFsTemplate ( dataBufferFactory ,
new GridFsReactiveMongoDatabaseFactory ( reactiveMongoDatabaseFactory , this . connectionDetails ) ,
mappingMongoConverter ,
( this . connectionDetails . getGridFs ( ) ! = null ) ? this . connectionDetails . getGridFs ( ) . getBucket ( ) : null ) ;
new GridFsReactiveMongoDatabaseFactory ( reactiveMongoDatabaseFactory , this . properties ) ,
mappingMongoConverter , this . properties . getGridfs ( ) . getBucket ( ) ) ;
}
/ * *
* { @link ReactiveMongoDatabaseFactory } decorator to use { @link GridFs # getGridFs ( ) }
* from the { @link MongoConnectionDetail s } when set .
* { @link ReactiveMongoDatabaseFactory } decorator to use { @link Gridfs # getDatabase ( ) }
* from the { @link MongoPropertie s } when set .
* /
static class GridFsReactiveMongoDatabaseFactory implements ReactiveMongoDatabaseFactory {
private final ReactiveMongoDatabaseFactory delegate ;
private final MongoConnectionDetails connectionDetail s ;
private final MongoProperties propertie s ;
GridFsReactiveMongoDatabaseFactory ( ReactiveMongoDatabaseFactory delegate ,
MongoConnectionDetails connectionDetails ) {
GridFsReactiveMongoDatabaseFactory ( ReactiveMongoDatabaseFactory delegate , MongoProperties properties ) {
this . delegate = delegate ;
this . connectionDetails = connectionDetail s;
this . properties = propertie s;
}
@Override
@ -139,15 +138,15 @@ public final class MongoReactiveDataAutoConfiguration {
@@ -139,15 +138,15 @@ public final class MongoReactiveDataAutoConfiguration {
@Override
public Mono < MongoDatabase > getMongoDatabase ( ) throws DataAccessException {
String gridFsDatabase = getGridFsDatabase ( this . connectionDetails ) ;
String gridFsDatabase = getGridFsDatabase ( ) ;
if ( StringUtils . hasText ( gridFsDatabase ) ) {
return this . delegate . getMongoDatabase ( gridFsDatabase ) ;
}
return this . delegate . getMongoDatabase ( ) ;
}
private @Nullable String getGridFsDatabase ( MongoConnectionDetails connectionDetails ) {
return ( connectionDetails . getGridFs ( ) ! = null ) ? connectionDetails . getGridF s( ) . getDatabase ( ) : null ;
private @Nullable String getGridFsDatabase ( ) {
return this . properties . getGridf s( ) . getDatabase ( ) ;
}
@Override