Skip to content

Commit 9b7bc69

Browse files
committed
Merge pull request #16467 from ayudovin
* pr/16467: Polish "Add auto-configuration support for ReactiveGridFsTemplate" Add auto-configuration support for ReactiveGridFsTemplate
2 parents 1a05851 + e24c17d commit 9b7bc69

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfiguration.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import org.springframework.context.annotation.Bean;
3030
import org.springframework.context.annotation.Configuration;
3131
import org.springframework.context.annotation.Import;
32+
import org.springframework.core.io.buffer.DataBufferFactory;
33+
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
3234
import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory;
3335
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
3436
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
@@ -37,6 +39,7 @@
3739
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
3840
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
3941
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
42+
import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate;
4043

4144
/**
4245
* {@link EnableAutoConfiguration Auto-configuration} for Spring Data's reactive mongo
@@ -49,6 +52,7 @@
4952
* to the {@literal test} database.
5053
*
5154
* @author Mark Paluch
55+
* @author Artsiom Yudovin
5256
* @since 2.0.0
5357
*/
5458
@Configuration(proxyBeanMethods = false)
@@ -85,4 +89,20 @@ public MappingMongoConverter mappingMongoConverter(MongoMappingContext context,
8589
return mappingConverter;
8690
}
8791

92+
@Bean
93+
@ConditionalOnMissingBean
94+
public DefaultDataBufferFactory dataBufferFactory() {
95+
return new DefaultDataBufferFactory();
96+
}
97+
98+
@Bean
99+
@ConditionalOnMissingBean
100+
public ReactiveGridFsTemplate reactiveGridFsTemplate(
101+
ReactiveMongoDatabaseFactory reactiveMongoDbFactory,
102+
MappingMongoConverter mappingMongoConverter,
103+
DataBufferFactory dataBufferFactory) {
104+
return new ReactiveGridFsTemplate(dataBufferFactory, reactiveMongoDbFactory,
105+
mappingMongoConverter, null);
106+
}
107+
88108
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/mongo/MongoReactiveDataAutoConfigurationTests.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2018 the original author or authors.
2+
* Copyright 2012-2019 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.
@@ -23,13 +23,15 @@
2323
import org.springframework.boot.autoconfigure.mongo.MongoReactiveAutoConfiguration;
2424
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2525
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
26+
import org.springframework.data.mongodb.gridfs.ReactiveGridFsTemplate;
2627

2728
import static org.assertj.core.api.Assertions.assertThat;
2829

2930
/**
3031
* Tests for {@link MongoReactiveDataAutoConfiguration}.
3132
*
3233
* @author Mark Paluch
34+
* @author Artsiom Yudovin
3335
*/
3436
public class MongoReactiveDataAutoConfigurationTests {
3537

@@ -45,6 +47,12 @@ public void templateExists() {
4547
.hasSingleBean(ReactiveMongoTemplate.class));
4648
}
4749

50+
@Test
51+
public void gridFsTemplateExists() {
52+
this.contextRunner.run((context) -> assertThat(context)
53+
.hasSingleBean(ReactiveGridFsTemplate.class));
54+
}
55+
4856
@Test
4957
public void backsOffIfMongoClientBeanIsNotPresent() {
5058
ApplicationContextRunner runner = new ApplicationContextRunner()

0 commit comments

Comments
 (0)