1
1
/*
2
- * Copyright 2002-2024 the original author or authors.
2
+ * Copyright 2002-2025 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
16
16
17
17
package org .springframework .context .annotation .configuration ;
18
18
19
- import java .util .Collections ;
20
-
21
19
import org .aspectj .lang .annotation .Aspect ;
22
20
import org .aspectj .lang .annotation .Before ;
23
21
import org .junit .jupiter .api .Test ;
30
28
import org .springframework .context .annotation .Bean ;
31
29
import org .springframework .context .annotation .Configuration ;
32
30
import org .springframework .context .annotation .ImportResource ;
33
- import org .springframework .core .env .MapPropertySource ;
34
- import org .springframework .core .env .PropertySource ;
31
+ import org .springframework .core .testfixture .env .MockPropertySource ;
35
32
36
33
import static org .assertj .core .api .Assertions .assertThat ;
37
34
38
35
/**
39
- * Integration tests for {@link ImportResource} support.
36
+ * Integration tests for {@link ImportResource @ImportResource } support.
40
37
*
41
38
* @author Chris Beams
42
39
* @author Juergen Hoeller
45
42
class ImportResourceTests {
46
43
47
44
@ Test
48
- void importXml () {
49
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlConfig .class );
50
- assertThat (ctx .containsBean ("javaDeclaredBean" )).as ("did not contain java-declared bean" ).isTrue ();
51
- assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
52
- TestBean tb = ctx .getBean ("javaDeclaredBean" , TestBean .class );
53
- assertThat (tb .getName ()).isEqualTo ("myName" );
54
- ctx . close ();
45
+ void importResource () {
46
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlConfig .class )) {
47
+ assertThat (ctx .containsBean ("javaDeclaredBean" )).as ("did not contain java-declared bean" ).isTrue ();
48
+ assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
49
+ TestBean tb = ctx .getBean ("javaDeclaredBean" , TestBean .class );
50
+ assertThat (tb .getName ()).isEqualTo ("myName" );
51
+ }
55
52
}
56
53
57
54
@ Test
58
- void importXmlIsInheritedFromSuperclassDeclarations () {
59
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (FirstLevelSubConfig .class );
60
- assertThat (ctx .containsBean ("xmlDeclaredBean" )).isTrue ();
61
- ctx . close ();
55
+ void importResourceIsInheritedFromSuperclassDeclarations () {
56
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (FirstLevelSubConfig .class )) {
57
+ assertThat (ctx .containsBean ("xmlDeclaredBean" )).isTrue ();
58
+ }
62
59
}
63
60
64
61
@ Test
65
- void importXmlIsMergedFromSuperclassDeclarations () {
66
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (SecondLevelSubConfig .class );
67
- assertThat (ctx .containsBean ("secondLevelXmlDeclaredBean" )).as ("failed to pick up second-level-declared XML bean" ).isTrue ();
68
- assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("failed to pick up parent-declared XML bean" ).isTrue ();
69
- ctx . close ();
62
+ void importResourceIsMergedFromSuperclassDeclarations () {
63
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (SecondLevelSubConfig .class )) {
64
+ assertThat (ctx .containsBean ("secondLevelXmlDeclaredBean" )).as ("failed to pick up second-level-declared XML bean" ).isTrue ();
65
+ assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("failed to pick up parent-declared XML bean" ).isTrue ();
66
+ }
70
67
}
71
68
72
69
@ Test
73
- void importXmlWithNamespaceConfig () {
74
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlWithAopNamespaceConfig .class );
75
- Object bean = ctx .getBean ("proxiedXmlBean" );
76
- assertThat (AopUtils .isAopProxy (bean )).isTrue ();
77
- ctx . close ();
70
+ void importResourceWithNamespaceConfig () {
71
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlWithAopNamespaceConfig .class )) {
72
+ Object bean = ctx .getBean ("proxiedXmlBean" );
73
+ assertThat (AopUtils .isAopProxy (bean )).isTrue ();
74
+ }
78
75
}
79
76
80
77
@ Test
81
- void importXmlWithOtherConfigurationClass () {
82
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlWithConfigurationClass .class );
83
- assertThat (ctx .containsBean ("javaDeclaredBean" )).as ("did not contain java-declared bean" ).isTrue ();
84
- assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
85
- TestBean tb = ctx .getBean ("javaDeclaredBean" , TestBean .class );
86
- assertThat (tb .getName ()).isEqualTo ("myName" );
87
- ctx . close ();
78
+ void importResourceWithOtherConfigurationClass () {
79
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlWithConfigurationClass .class )) {
80
+ assertThat (ctx .containsBean ("javaDeclaredBean" )).as ("did not contain java-declared bean" ).isTrue ();
81
+ assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
82
+ TestBean tb = ctx .getBean ("javaDeclaredBean" , TestBean .class );
83
+ assertThat (tb .getName ()).isEqualTo ("myName" );
84
+ }
88
85
}
89
86
90
87
@ Test
91
88
void importWithPlaceholder () {
92
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext ();
93
- PropertySource <?> propertySource = new MapPropertySource ("test" ,
94
- Collections .<String , Object > singletonMap ("test" , "springframework" ));
95
- ctx .getEnvironment ().getPropertySources ().addFirst (propertySource );
96
- ctx .register (ImportXmlConfig .class );
97
- ctx .refresh ();
98
- assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
99
- ctx .close ();
89
+ try (AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext ()) {
90
+ ctx .getEnvironment ().getPropertySources ().addFirst (new MockPropertySource ("test" ).withProperty ("test" , "springframework" ));
91
+ ctx .register (ImportXmlConfig .class );
92
+ ctx .refresh ();
93
+ assertThat (ctx .containsBean ("xmlDeclaredBean" )).as ("did not contain xml-declared bean" ).isTrue ();
94
+ }
100
95
}
101
96
102
97
@ Test
103
- void importXmlWithAutowiredConfig () {
104
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlAutowiredConfig .class );
105
- String name = ctx .getBean ("xmlBeanName" , String .class );
106
- assertThat (name ).isEqualTo ("xml.declared" );
107
- ctx . close ();
98
+ void importResourceWithAutowiredConfig () {
99
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportXmlAutowiredConfig .class )) {
100
+ String name = ctx .getBean ("xmlBeanName" , String .class );
101
+ assertThat (name ).isEqualTo ("xml.declared" );
102
+ }
108
103
}
109
104
110
105
@ Test
111
106
void importNonXmlResource () {
112
- AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportNonXmlResourceConfig .class );
113
- assertThat (ctx .containsBean ("propertiesDeclaredBean" )).isTrue ();
114
- ctx . close ();
107
+ try ( AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext (ImportNonXmlResourceConfig .class )) {
108
+ assertThat (ctx .containsBean ("propertiesDeclaredBean" )).isTrue ();
109
+ }
115
110
}
116
111
117
112
118
113
@ Configuration
119
114
@ ImportResource ("classpath:org/springframework/context/annotation/configuration/ImportXmlConfig-context.xml" )
120
115
static class ImportXmlConfig {
116
+
121
117
@ Value ("${name}" )
122
118
private String name ;
119
+
123
120
@ Bean public TestBean javaDeclaredBean () {
124
121
return new TestBean (this .name );
125
122
}
@@ -146,6 +143,7 @@ static class ImportXmlWithAopNamespaceConfig {
146
143
147
144
@ Aspect
148
145
static class AnAspect {
146
+
149
147
@ Before ("execution(* org.springframework.beans.testfixture.beans.TestBean.*(..))" )
150
148
public void advice () { }
151
149
}
@@ -158,16 +156,19 @@ static class ImportXmlWithConfigurationClass {
158
156
@ Configuration
159
157
@ ImportResource ("classpath:org/springframework/context/annotation/configuration/ImportXmlConfig-context.xml" )
160
158
static class ImportXmlAutowiredConfig {
161
- @ Autowired TestBean xmlDeclaredBean ;
162
159
163
- @ Bean public String xmlBeanName () {
160
+ @ Autowired
161
+ TestBean xmlDeclaredBean ;
162
+
163
+ @ Bean
164
+ public String xmlBeanName () {
164
165
return xmlDeclaredBean .getName ();
165
166
}
166
167
}
167
168
168
169
@ SuppressWarnings ("deprecation" )
169
170
@ Configuration
170
- @ ImportResource (locations = "classpath: org/springframework/context/annotation/configuration/ImportNonXmlResourceConfig-context .properties" ,
171
+ @ ImportResource (locations = "org/springframework/context/annotation/configuration/ImportNonXmlResourceConfig.properties" ,
171
172
reader = org .springframework .beans .factory .support .PropertiesBeanDefinitionReader .class )
172
173
static class ImportNonXmlResourceConfig {
173
174
}
0 commit comments