26
26
import org .springframework .beans .BeanUtils ;
27
27
import org .springframework .beans .factory .BeanDefinitionStoreException ;
28
28
import org .springframework .beans .factory .groovy .GroovyBeanDefinitionReader ;
29
+ import org .springframework .beans .factory .support .AbstractBeanDefinitionReader ;
29
30
import org .springframework .beans .factory .support .BeanDefinitionReader ;
30
31
import org .springframework .beans .factory .support .BeanDefinitionRegistry ;
31
32
import org .springframework .beans .factory .support .BeanNameGenerator ;
59
60
*/
60
61
class BeanDefinitionLoader {
61
62
62
- /**
63
- * Boolean flag controlled by a {@code spring.xml.ignore} system property that
64
- * instructs Spring to ignore XML, i.e. to not initialize the XML-related
65
- * infrastructure.
66
- * <p>
67
- * By default XML support is enabled.
68
- */
69
- private static final boolean IS_XML_ENABLED = !SpringProperties .getFlag ("spring.xml.ignore" );
63
+ // Static final field to facilitate code removal by Graal
64
+ private static final boolean XML_ENABLED = !SpringProperties .getFlag ("spring.xml.ignore" );
70
65
71
66
private final Object [] sources ;
72
67
73
68
private final AnnotatedBeanDefinitionReader annotatedReader ;
74
69
75
- private final XmlBeanDefinitionReader xmlReader ;
70
+ private final AbstractBeanDefinitionReader xmlReader ;
76
71
77
72
private final BeanDefinitionReader groovyReader ;
78
73
@@ -91,7 +86,7 @@ class BeanDefinitionLoader {
91
86
Assert .notEmpty (sources , "Sources must not be empty" );
92
87
this .sources = sources ;
93
88
this .annotatedReader = new AnnotatedBeanDefinitionReader (registry );
94
- this .xmlReader = (IS_XML_ENABLED ? new XmlBeanDefinitionReader (registry ) : null );
89
+ this .xmlReader = (XML_ENABLED ? new XmlBeanDefinitionReader (registry ) : null );
95
90
this .groovyReader = (isGroovyPresent () ? new GroovyBeanDefinitionReader (registry ) : null );
96
91
this .scanner = new ClassPathBeanDefinitionScanner (registry );
97
92
this .scanner .addExcludeFilter (new ClassExcludeFilter (sources ));
@@ -104,7 +99,7 @@ class BeanDefinitionLoader {
104
99
void setBeanNameGenerator (BeanNameGenerator beanNameGenerator ) {
105
100
this .annotatedReader .setBeanNameGenerator (beanNameGenerator );
106
101
this .scanner .setBeanNameGenerator (beanNameGenerator );
107
- if (IS_XML_ENABLED ) {
102
+ if (this . xmlReader != null ) {
108
103
this .xmlReader .setBeanNameGenerator (beanNameGenerator );
109
104
}
110
105
}
@@ -116,7 +111,7 @@ void setBeanNameGenerator(BeanNameGenerator beanNameGenerator) {
116
111
void setResourceLoader (ResourceLoader resourceLoader ) {
117
112
this .resourceLoader = resourceLoader ;
118
113
this .scanner .setResourceLoader (resourceLoader );
119
- if (IS_XML_ENABLED ) {
114
+ if (this . xmlReader != null ) {
120
115
this .xmlReader .setResourceLoader (resourceLoader );
121
116
}
122
117
}
@@ -128,7 +123,7 @@ void setResourceLoader(ResourceLoader resourceLoader) {
128
123
void setEnvironment (ConfigurableEnvironment environment ) {
129
124
this .annotatedReader .setEnvironment (environment );
130
125
this .scanner .setEnvironment (environment );
131
- if (IS_XML_ENABLED ) {
126
+ if (this . xmlReader != null ) {
132
127
this .xmlReader .setEnvironment (environment );
133
128
}
134
129
}
@@ -182,8 +177,8 @@ private void load(Resource source) {
182
177
this .groovyReader .loadBeanDefinitions (source );
183
178
}
184
179
else {
185
- if (! IS_XML_ENABLED ) {
186
- throw new BeanDefinitionStoreException ("Cannot load resources when XML support is disabled" );
180
+ if (this . xmlReader == null ) {
181
+ throw new BeanDefinitionStoreException ("Cannot load XML bean definitions when XML support is disabled" );
187
182
}
188
183
this .xmlReader .loadBeanDefinitions (source );
189
184
}
0 commit comments