From defceec90c56c103ee50f3b18ebd06056f2a4155 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 10 Jun 2015 17:53:45 +0100 Subject: [PATCH] Reinstate support for spring.groovy.template.configuration.* Previously, spring.groovy.template.configuration.* was mapped onto both GroovyTemplateProperties.configuration and GroovyMarkupConfigurer. The former being a Map and the latter being specific type with getters and setters. This clash caused problems with the IDE support. GroovyTemplateProperties.configuration appeared to be dead code so it was removed in 326bdf2. Unfortunately this broke the use of spring.groovy.template.configuration.* properties as GroovyTemplateProperties uses a prefix of spring.groovy.template and it no longer had a configuration property. This commit addresses the problem by updating GroovyTemplateProperties to ignore unknown fields. This allows spring.groovy.template.configuration.* properties to be used and bound to GroovyMarkupConfigurer without reintroducing the clash which prompted the initial change. Closes gh-3198 --- .../groovy/template/GroovyTemplateProperties.java | 2 +- .../template/GroovyTemplateAutoConfigurationTests.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateProperties.java index 642959797b6..d98464d7bee 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateProperties.java @@ -25,7 +25,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * @author Dave Syer * @since 1.1.0 */ -@ConfigurationProperties(prefix = "spring.groovy.template", ignoreUnknownFields = false) +@ConfigurationProperties(prefix = "spring.groovy.template", ignoreUnknownFields = true) public class GroovyTemplateProperties extends AbstractViewResolverProperties { public static final String DEFAULT_PREFIX = "classpath:/templates/"; diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfigurationTests.java index 77af19352b3..1813f226d66 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfigurationTests.java @@ -41,10 +41,12 @@ import org.springframework.web.servlet.View; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.support.RequestContext; import org.springframework.web.servlet.view.groovy.GroovyMarkupConfig; +import org.springframework.web.servlet.view.groovy.GroovyMarkupConfigurer; import org.springframework.web.servlet.view.groovy.GroovyMarkupViewResolver; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertThat; @@ -171,6 +173,13 @@ public class GroovyTemplateAutoConfigurationTests { assertThat(writer.toString(), containsString("Hello World")); } + @Test + public void customConfiguration() throws Exception { + registerAndRefreshContext("spring.groovy.template.configuration.auto-indent:true"); + assertThat(this.context.getBean(GroovyMarkupConfigurer.class).isAutoIndent(), + is(true)); + } + private void registerAndRefreshContext(String... env) { EnvironmentTestUtils.addEnvironment(this.context, env); this.context.register(GroovyTemplateAutoConfiguration.class);