Skip to content

Commit fd94608

Browse files
committed
Polish "Restore proxying of @bean methods in @TestConfiguration"
See gh-18675
1 parent 7faa606 commit fd94608

File tree

13 files changed

+30
-27
lines changed

13 files changed

+30
-27
lines changed

spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6840,7 +6840,7 @@ The following example shows a `RestDocumentationResultHandler` being defined:
68406840

68416841
[source,java,indent=0]
68426842
----
6843-
@TestConfiguration
6843+
@TestConfiguration(proxyBeanMethods = false)
68446844
static class ResultHandlerConfiguration {
68456845
68466846
@Bean

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/restassured/AdvancedConfigurationExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class AdvancedConfigurationExample {
2525

2626
// tag::configuration[]
27-
@TestConfiguration
27+
@TestConfiguration(proxyBeanMethods = false)
2828
public static class CustomizationConfiguration implements RestDocsRestAssuredConfigurationCustomizer {
2929

3030
@Override

spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/test/autoconfigure/restdocs/webclient/AdvancedConfigurationExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
public class AdvancedConfigurationExample {
2424

2525
// tag::configuration[]
26-
@TestConfiguration
26+
@TestConfiguration(proxyBeanMethods = false)
2727
public static class CustomizationConfiguration implements RestDocsWebTestClientConfigurationCustomizer {
2828

2929
@Override

spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void testRequest() {
4949
assertThat(headers.getLocation()).hasHost("other.example.com");
5050
}
5151

52-
@TestConfiguration
52+
@TestConfiguration(proxyBeanMethods = false)
5353
static class Config {
5454

5555
@Bean

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/ExampleTestConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
*
2626
* @author Phillip Webb
2727
*/
28-
@TestConfiguration
28+
@TestConfiguration(proxyBeanMethods = false)
2929
@EntityScan("some.other.package")
3030
public class ExampleTestConfig {
3131

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/jdbc/AutoConfigureTestDatabaseWithNoDatabaseIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ void testContextLoads() {
4848
assertThat(this.context.getBeanNamesForType(DataSource.class)).isNotEmpty();
4949
}
5050

51-
@TestConfiguration
51+
@TestConfiguration(proxyBeanMethods = false)
5252
static class Config {
5353

5454
}

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/MockMvcRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void snippetGeneration() throws Exception {
7878
assertThat(new File(defaultSnippetsDir, "response-fields.md")).isFile();
7979
}
8080

81-
@TestConfiguration
81+
@TestConfiguration(proxyBeanMethods = false)
8282
static class CustomizationConfiguration {
8383

8484
@Bean

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ void snippetGeneration() {
8282
assertThat(new File(defaultSnippetsDir, "response-fields.md")).isFile();
8383
}
8484

85-
@TestConfiguration
85+
@TestConfiguration(proxyBeanMethods = false)
8686
static class CustomizationConfiguration {
8787

8888
@Bean

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/WebTestClientRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ void defaultSnippetsAreWritten() throws Exception {
7272
assertThat(new File(defaultSnippetsDir, "response-fields.md")).isFile();
7373
}
7474

75-
@TestConfiguration
75+
@TestConfiguration(proxyBeanMethods = false)
7676
static class CustomizationConfiguration {
7777

7878
@Bean

spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestServletFilterRegistrationDisabledIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ void shouldNotApplyFilter() throws Exception {
4444
this.mvc.perform(get("/one")).andExpect(header().string("x-test", (String) null));
4545
}
4646

47-
@TestConfiguration
47+
@TestConfiguration(proxyBeanMethods = false)
4848
static class DisabledRegistrationConfiguration {
4949

5050
@Bean

spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/context/TestConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
@Target(ElementType.TYPE)
4141
@Retention(RetentionPolicy.RUNTIME)
4242
@Documented
43-
@Configuration(proxyBeanMethods = false)
43+
@Configuration
4444
@TestComponent
4545
public @interface TestConfiguration {
4646

@@ -71,8 +71,8 @@
7171
* individually like when declared on non-{@code @Configuration} classes, a.k.a.
7272
* "@Bean Lite Mode" (see {@link Bean @Bean's javadoc}). It is therefore behaviorally
7373
* equivalent to removing the {@code @Configuration} stereotype.
74-
* @since 2.2.1
7574
* @return whether to proxy {@code @Bean} methods
75+
* @since 2.2.1
7676
*/
7777
@AliasFor(annotation = Configuration.class)
7878
boolean proxyBeanMethods() default true;

spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/TestConfigurationTests.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,42 @@
1616

1717
package org.springframework.boot.test.context;
1818

19-
import org.assertj.core.api.Assertions;
2019
import org.junit.jupiter.api.Test;
2120

22-
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
21+
import org.springframework.context.annotation.Configuration;
22+
import org.springframework.core.annotation.AnnotatedElementUtils;
23+
import org.springframework.core.annotation.AnnotationAttributes;
24+
25+
import static org.assertj.core.api.Assertions.assertThat;
2326

2427
/**
25-
* Tests for {@link TestConfiguration}.
28+
* Tests for {@link TestConfiguration @TestConfiguration}.
2629
*
27-
* @author Dmytro Nosan
30+
* @author Stephane Nicoll
2831
*/
2932
class TestConfigurationTests {
3033

31-
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner();
32-
3334
@Test
34-
void shouldProxyBeanMethods() {
35-
this.contextRunner.withUserConfiguration(ProxyBeanMethodsConfiguration.class)
36-
.run((context) -> Assertions.assertThat(context).hasFailed());
35+
void proxyBeanMethodsIsEnabledByDefault() {
36+
AnnotationAttributes attributes = AnnotatedElementUtils
37+
.getMergedAnnotationAttributes(DefaultTestConfiguration.class, Configuration.class);
38+
assertThat(attributes.get("proxyBeanMethods")).isEqualTo(true);
3739
}
3840

3941
@Test
40-
void shouldNotProxyBeanMethods() {
41-
this.contextRunner.withUserConfiguration(ProxyBeanMethodsDisableConfiguration.class)
42-
.run((context) -> Assertions.assertThat(context).hasNotFailed());
42+
void proxyBeanMethodsCanBeDisabled() {
43+
AnnotationAttributes attributes = AnnotatedElementUtils
44+
.getMergedAnnotationAttributes(NoBeanMethodProxyingTestConfiguration.class, Configuration.class);
45+
assertThat(attributes.get("proxyBeanMethods")).isEqualTo(false);
4346
}
4447

4548
@TestConfiguration
46-
final static class ProxyBeanMethodsConfiguration {
49+
static class DefaultTestConfiguration {
4750

4851
}
4952

5053
@TestConfiguration(proxyBeanMethods = false)
51-
final static class ProxyBeanMethodsDisableConfiguration {
54+
static class NoBeanMethodProxyingTestConfiguration {
5255

5356
}
5457

spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/bootstrap/SpringBootTestContextBootstrapperIntegrationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ void defaultTestExecutionListenersPostProcessorShouldBeCalled() {
6767
assertThat(this.defaultTestExecutionListenersPostProcessorCalled).isTrue();
6868
}
6969

70-
@TestConfiguration
70+
@TestConfiguration(proxyBeanMethods = false)
7171
static class TestConfig {
7272

7373
@Bean

0 commit comments

Comments
 (0)