From 9bc0bbb7de2f2a26f7643e3d6c5a3d13948c15f1 Mon Sep 17 00:00:00 2001 From: sdelamo Date: Tue, 11 Dec 2018 11:37:46 +0100 Subject: [PATCH] workaround duplicate findViewConfigPropertyDescriptor" See: https://github.com/grails/grails-views/issues/194 --- .../grails/views/GenericViewConfiguration.groovy | 6 +----- .../grails/views/GenericViewConfigurationSpec.groovy | 6 ++++++ .../plugin/json/view/JsonViewConfiguration.groovy | 8 ++++++++ .../plugin/markup/view/MarkupViewConfiguration.groovy | 11 +++-------- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/core/src/main/groovy/grails/views/GenericViewConfiguration.groovy b/core/src/main/groovy/grails/views/GenericViewConfiguration.groovy index 4d255d654..4592d5b43 100644 --- a/core/src/main/groovy/grails/views/GenericViewConfiguration.groovy +++ b/core/src/main/groovy/grails/views/GenericViewConfiguration.groovy @@ -103,7 +103,7 @@ trait GenericViewConfiguration implements ViewConfiguration, GrailsApplicationAw String moduleName = viewModuleName GroovyObject configObject = (GroovyObject)this if (config != null) { - def descriptors = findViewConfigPropertyDescriptor() + PropertyDescriptor[] descriptors = BeanUtils.getPropertyDescriptors(GenericViewConfiguration) for (PropertyDescriptor desc in descriptors) { if (desc.writeMethod != null) { String propertyName = desc.name @@ -131,8 +131,4 @@ trait GenericViewConfiguration implements ViewConfiguration, GrailsApplicationAw } packages as String[] } - - PropertyDescriptor[] findViewConfigPropertyDescriptor() { - BeanUtils.getPropertyDescriptors(GenericViewConfiguration) - } } diff --git a/core/src/test/groovy/grails/views/GenericViewConfigurationSpec.groovy b/core/src/test/groovy/grails/views/GenericViewConfigurationSpec.groovy index fd35d3b18..07dd14bf5 100644 --- a/core/src/test/groovy/grails/views/GenericViewConfigurationSpec.groovy +++ b/core/src/test/groovy/grails/views/GenericViewConfigurationSpec.groovy @@ -3,6 +3,8 @@ package grails.views import grails.util.GrailsUtil import org.grails.config.CodeGenConfig import spock.lang.IgnoreIf +import org.springframework.beans.BeanUtils +import java.beans.PropertyDescriptor import spock.lang.Specification //Fixed in 3.2.5 @@ -34,4 +36,8 @@ class TestClass implements GenericViewConfiguration { String getViewModuleName() { "json" } + + PropertyDescriptor[] findViewConfigPropertyDescriptor() { + BeanUtils.getPropertyDescriptors(GenericViewConfiguration) + } } diff --git a/json/src/main/groovy/grails/plugin/json/view/JsonViewConfiguration.groovy b/json/src/main/groovy/grails/plugin/json/view/JsonViewConfiguration.groovy index d3c231383..dd93baf24 100644 --- a/json/src/main/groovy/grails/plugin/json/view/JsonViewConfiguration.groovy +++ b/json/src/main/groovy/grails/plugin/json/view/JsonViewConfiguration.groovy @@ -2,8 +2,11 @@ package grails.plugin.json.view import grails.views.GenericViewConfiguration import grails.web.mime.MimeType +import org.springframework.beans.BeanUtils import org.springframework.boot.context.properties.ConfigurationProperties +import java.beans.PropertyDescriptor + /** * Default configuration for JSON views * @@ -29,4 +32,9 @@ class JsonViewConfiguration implements GenericViewConfiguration { String getViewModuleName() { MODULE_NAME } + + PropertyDescriptor[] findViewConfigPropertyDescriptor() { + BeanUtils.getPropertyDescriptors(GenericViewConfiguration) + } + } diff --git a/markup/src/main/groovy/grails/plugin/markup/view/MarkupViewConfiguration.groovy b/markup/src/main/groovy/grails/plugin/markup/view/MarkupViewConfiguration.groovy index 37e494a6c..4e99dafc0 100644 --- a/markup/src/main/groovy/grails/plugin/markup/view/MarkupViewConfiguration.groovy +++ b/markup/src/main/groovy/grails/plugin/markup/view/MarkupViewConfiguration.groovy @@ -57,15 +57,10 @@ class MarkupViewConfiguration extends TemplateConfiguration implements GenericVi MODULE_NAME } - @Override PropertyDescriptor[] findViewConfigPropertyDescriptor() { - def allDescriptors = [] - allDescriptors.addAll( - GenericViewConfiguration.super.findViewConfigPropertyDescriptor() - ) - allDescriptors.addAll( - BeanUtils.getPropertyDescriptors(TemplateConfiguration) - ) + List allDescriptors = [] + allDescriptors.addAll(BeanUtils.getPropertyDescriptors(GenericViewConfiguration)) + allDescriptors.addAll(BeanUtils.getPropertyDescriptors(TemplateConfiguration)) return allDescriptors as PropertyDescriptor[] } }