Refine ignored @PropertySource log warning

If the enclosing environment does not implement ConfigurableEnvironment,
then @PropertySource annotations are ignored because there is no way to
add them to the Environment. Now checking first to see if there are any
@PropertySource annotations present before issuing the warning.

Issue: SPR-8314
This commit is contained in:
Chris Beams 2011-05-12 12:27:14 +00:00
parent 8190b4f70a
commit 57206db152
1 changed files with 11 additions and 9 deletions

View File

@ -247,15 +247,17 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo
parser.validate(); parser.validate();
// Handle any @PropertySource annotations // Handle any @PropertySource annotations
if (!(this.environment instanceof ConfigurableEnvironment)) { Stack<PropertySource<?>> parsedPropertySources = parser.getPropertySources();
logger.warn("Ignoring @PropertySource annotations. " + if (!parsedPropertySources.isEmpty()) {
"Reason: Environment must implement ConfigurableEnvironment"); if (!(this.environment instanceof ConfigurableEnvironment)) {
} logger.warn("Ignoring @PropertySource annotations. " +
else { "Reason: Environment must implement ConfigurableEnvironment");
MutablePropertySources envPropertySources = ((ConfigurableEnvironment)this.environment).getPropertySources(); }
Stack<PropertySource<?>> parsedPropertySources = parser.getPropertySources(); else {
while (!parsedPropertySources.isEmpty()) { MutablePropertySources envPropertySources = ((ConfigurableEnvironment)this.environment).getPropertySources();
envPropertySources.addLast(parsedPropertySources.pop()); while (!parsedPropertySources.isEmpty()) {
envPropertySources.addLast(parsedPropertySources.pop());
}
} }
} }