44
44
import org .springframework .beans .factory .support .BeanNameGenerator ;
45
45
import org .springframework .beans .factory .support .RootBeanDefinition ;
46
46
import org .springframework .beans .factory .xml .XmlBeanDefinitionReader ;
47
- import org .springframework .context .annotation .ConfigurationClassParser .ImportRegistry ;
48
47
import org .springframework .context .annotation .ConfigurationCondition .ConfigurationPhase ;
49
48
import org .springframework .core .annotation .AnnotationAttributes ;
50
49
import org .springframework .core .env .Environment ;
@@ -96,7 +95,7 @@ class ConfigurationClassBeanDefinitionReader {
96
95
* Create a new {@link ConfigurationClassBeanDefinitionReader} instance that will be used
97
96
* to populate the given {@link BeanDefinitionRegistry}.
98
97
*/
99
- public ConfigurationClassBeanDefinitionReader (BeanDefinitionRegistry registry , SourceExtractor sourceExtractor ,
98
+ ConfigurationClassBeanDefinitionReader (BeanDefinitionRegistry registry , SourceExtractor sourceExtractor ,
100
99
ProblemReporter problemReporter , MetadataReaderFactory metadataReaderFactory ,
101
100
ResourceLoader resourceLoader , Environment environment , BeanNameGenerator importBeanNameGenerator ,
102
101
ImportRegistry importRegistry ) {
@@ -132,8 +131,11 @@ private void loadBeanDefinitionsForConfigurationClass(ConfigurationClass configC
132
131
TrackedConditionEvaluator trackedConditionEvaluator ) {
133
132
134
133
if (trackedConditionEvaluator .shouldSkip (configClass )) {
135
- removeBeanDefinition (configClass );
136
- importRegistry .removeImportingClassFor (configClass .getMetadata ().getClassName ());
134
+ String beanName = configClass .getBeanName ();
135
+ if (StringUtils .hasLength (beanName ) && this .registry .containsBeanDefinition (beanName )) {
136
+ this .registry .removeBeanDefinition (beanName );
137
+ }
138
+ this .importRegistry .removeImportingClassFor (configClass .getMetadata ().getClassName ());
137
139
return ;
138
140
}
139
141
@@ -147,13 +149,6 @@ private void loadBeanDefinitionsForConfigurationClass(ConfigurationClass configC
147
149
loadBeanDefinitionsFromRegistrars (configClass .getImportBeanDefinitionRegistrars ());
148
150
}
149
151
150
- private void removeBeanDefinition (ConfigurationClass configClass ) {
151
- String beanName = configClass .getBeanName ();
152
- if (StringUtils .hasLength (beanName ) && this .registry .containsBeanDefinition (beanName )) {
153
- this .registry .removeBeanDefinition (beanName );
154
- }
155
- }
156
-
157
152
/**
158
153
* Register the {@link Configuration} class itself as a bean definition.
159
154
*/
0 commit comments