@@ -18,6 +18,7 @@ import grails.config.Config
1818import grails.core.GrailsClass
1919import grails.core.GrailsTagLibClass
2020import grails.gsp.PageRenderer
21+ import grails.io.IOUtils
2122import grails.plugins.Plugin
2223import grails.util.BuildSettings
2324import grails.util.Environment
@@ -32,6 +33,7 @@ import org.grails.gsp.GroovyPageResourceLoader
3233import org.grails.gsp.GroovyPagesTemplateEngine
3334import org.grails.gsp.io.CachingGroovyPageStaticResourceLocator
3435import org.grails.gsp.jsp.TagLibraryResolverImpl
36+ import org.grails.io.support.MainClassFinder
3537import org.grails.plugins.web.taglib.*
3638import org.grails.spring.RuntimeSpringConfiguration
3739import org.grails.taglib.TagLibraryLookup
@@ -48,6 +50,7 @@ import org.grails.web.util.GrailsApplicationAttributes
4850import org.springframework.beans.factory.config.PropertiesFactoryBean
4951import org.springframework.boot.context.embedded.ServletRegistrationBean
5052import org.springframework.core.io.Resource
53+ import org.springframework.core.io.UrlResource
5154import org.springframework.util.ClassUtils
5255import org.springframework.web.servlet.view.InternalResourceViewResolver
5356/**
@@ -171,8 +174,23 @@ class GroovyPagesGrailsPlugin extends Plugin {
171174 resourceLoader = groovyPageResourceLoader
172175 }
173176 if (deployed) {
174- def context = grailsApplication?. mainContext
175- def allViewsProperties = context?. getResources(" classpath*:gsp/views.properties" )
177+ def defaultViews = getClass(). classLoader. getResource(' gsp/views.properties' )
178+ List<Resource > allViewsProperties = []
179+
180+ for (plugin in pluginManager. allPlugins) {
181+
182+ def pluginViews = IOUtils . findResourceRelativeToClass(plugin. getPluginClass(), ' /gsp/views.properties' )
183+ if (pluginViews != null ) {
184+ def res = new UrlResource (pluginViews)
185+ if (res. exists()) {
186+ allViewsProperties. add(res)
187+ }
188+ }
189+ }
190+ if (defaultViews != null ) {
191+ allViewsProperties. add(new UrlResource (defaultViews))
192+ }
193+
176194 allViewsProperties = allViewsProperties?. findAll { Resource r ->
177195 def p = r.URL . path
178196 if (warDeployed && p. contains(' /WEB-INF/classes' )) {
0 commit comments