From 3cb1cb5d2fd29adace67b85319ad5be45095d5a2 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 29 Apr 2014 22:02:18 +0200 Subject: [PATCH] ConfigurationClassParser considers EnvironmentAware on ImportBeanDefinitionRegistrars Issue: SPR-11744 --- .../context/annotation/ConfigurationClassParser.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java index 611ceff6d17..d8336094999 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java @@ -42,6 +42,7 @@ import org.springframework.beans.factory.parsing.ProblemReporter; import org.springframework.beans.factory.support.BeanDefinitionReader; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; +import org.springframework.context.EnvironmentAware; import org.springframework.context.ResourceLoaderAware; import org.springframework.core.NestedIOException; import org.springframework.core.annotation.AnnotationAttributes; @@ -411,11 +412,14 @@ class ConfigurationClassParser { } /** - * Invoke {@link ResourceLoaderAware}, {@link BeanClassLoaderAware} and - * {@link BeanFactoryAware} contracts if implemented by the given {@code registrar}. + * Invoke {@link EnvironmentAware}, {@link ResourceLoaderAware}, {@link BeanClassLoaderAware} + * and {@link BeanFactoryAware} contracts if implemented by the given {@code registrar}. */ private void invokeAwareMethods(ImportBeanDefinitionRegistrar registrar) { if (registrar instanceof Aware) { + if (registrar instanceof EnvironmentAware) { + ((EnvironmentAware) registrar).setEnvironment(this.environment); + } if (registrar instanceof ResourceLoaderAware) { ((ResourceLoaderAware) registrar).setResourceLoader(this.resourceLoader); }