@@ -13,7 +13,7 @@ import grails.spring.BeanBuilder
1313import grails.util.Environment
1414import grails.util.Holders
1515import groovy.transform.CompileStatic
16- import groovy.util.logging.Commons
16+ import groovy.util.logging.Slf4j
1717import org.grails.config.NavigableMap
1818import org.grails.config.PrefixedMapPropertySource
1919import org.grails.config.PropertySourcesConfig
@@ -38,6 +38,8 @@ import org.springframework.core.convert.support.ConfigurableConversionService
3838import org.springframework.core.env.AbstractEnvironment
3939import org.springframework.core.env.ConfigurableEnvironment
4040import org.springframework.core.env.EnumerablePropertySource
41+ import org.springframework.core.io.Resource
42+ import org.springframework.core.io.support.PathMatchingResourcePatternResolver
4143
4244/**
4345 * A {@link BeanDefinitionRegistryPostProcessor} that enhances any ApplicationContext with plugin manager capabilities
@@ -46,7 +48,7 @@ import org.springframework.core.env.EnumerablePropertySource
4648 * @since 3.0
4749 */
4850@CompileStatic
49- @Commons
51+ @Slf4j
5052class GrailsApplicationPostProcessor implements BeanDefinitionRegistryPostProcessor , ApplicationContextAware , ApplicationListener<ApplicationContextEvent > {
5153 static final boolean RELOADING_ENABLED = Environment . isReloadingAgentEnabled()
5254
@@ -114,6 +116,12 @@ class GrailsApplicationPostProcessor implements BeanDefinitionRegistryPostProces
114116 if (environment instanceof ConfigurableEnvironment ) {
115117 if (environment instanceof AbstractEnvironment ) {
116118 conversionService = environment. getConversionService()
119+ conversionService. addConverter(new Converter<String , Resource > () {
120+ @Override
121+ public Resource convert (String source ) {
122+ return applicationContext. getResource(source);
123+ }
124+ });
117125 conversionService. addConverter(new Converter<NavigableMap.NullSafeNavigator , String > () {
118126 @Override
119127 public String convert (NavigableMap.NullSafeNavigator source ) {
0 commit comments