diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfiguration.java index 210dfea3a7..a2780dbcfa 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/groovy/template/GroovyTemplateAutoConfiguration.java @@ -24,7 +24,6 @@ import groovy.text.markup.TemplateConfiguration; import java.net.URL; import java.net.URLClassLoader; -import javax.annotation.PostConstruct; import javax.servlet.Servlet; import org.springframework.beans.factory.BeanClassLoaderAware; @@ -44,7 +43,6 @@ import org.springframework.core.Ordered; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; -import org.springframework.util.Assert; /** * Autoconfiguration support for Groovy templates in MVC. By default creates a @@ -66,17 +64,6 @@ public class GroovyTemplateAutoConfiguration { @Autowired private GroovyTemplateProperties properties; - @PostConstruct - public void checkTemplateLocationExists() { - if (this.properties.isCheckTemplateLocation()) { - Resource resource = this.resourceLoader.getResource(this.properties - .getPrefix()); - Assert.state(resource.exists(), "Cannot find template location: " + resource - + " (please add some templates " - + "or check your FreeMarker configuration)"); - } - } - @Configuration @ConditionalOnClass({ Servlet.class, LocaleContextHolder.class }) @ConditionalOnWebApplication @@ -108,8 +95,15 @@ public class GroovyTemplateAutoConfiguration { } private ClassLoader createParentLoaderForTemplates() throws Exception { - return new URLClassLoader(new URL[] { this.resourceLoader.getResource( - this.properties.getPrefix()).getURL() }, this.classLoader); + Resource resource = this.resourceLoader.getResource(this.properties + .getPrefix()); + if (resource.exists()) { + return new URLClassLoader(new URL[] { resource.getURL() }, + this.classLoader); + } + else { + return this.classLoader; + } } @Bean 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 b60031c84d..00bb6a3933 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 @@ -43,7 +43,7 @@ public class GroovyTemplateProperties { private String[] viewNames; - private boolean checkTemplateLocation = true; + private boolean checkTemplateLocation = false; private TemplateConfiguration configuration = new TemplateConfiguration(); diff --git a/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories b/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories index 7607d921a0..f3c9555e22 100644 --- a/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories @@ -44,5 +44,6 @@ org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration # Template availability providers org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\ org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider,\ +org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\ org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\ org.springframework.boot.autoconfigure.web.JspTemplateAvailabilityProvider 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 d9d12304c7..5d1e679f15 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 @@ -30,7 +30,6 @@ import javax.servlet.http.HttpServletRequest; import org.junit.After; import org.junit.Before; import org.junit.Test; -import org.springframework.beans.factory.BeanCreationException; import org.springframework.boot.autoconfigure.groovy.template.web.GroovyTemplateViewResolver; import org.springframework.boot.test.EnvironmentTestUtils; import org.springframework.context.i18n.LocaleContextHolder; @@ -75,12 +74,6 @@ public class GroovyTemplateAutoConfigurationTests { assertThat(this.context.getBean(GroovyTemplateViewResolver.class), notNullValue()); } - @Test(expected = BeanCreationException.class) - public void nonExistentTemplateLocation() { - registerAndRefreshContext("spring.groovy.template.prefix:" - + "classpath:/does-not-exist/"); - } - @Test public void emptyTemplateLocation() { new File("target/test-classes/templates/empty-directory").mkdir();