Make GroovyWebConfiguration conditional on spring-webmvc's availability

GroovyWebConfiguration creates a GroovyTemplateViewResolver which is
a UrlBasedViewResolver sub-class. UrlBasedViewResolver is provided
by spring-webmvc. Previously, if a user configured a web application
but did not have spring-webmvc on the classpath, the application
would fail to start with a NoClassDefFoundError for
UrlBasedViewResolver.

This commit makes GroovyWebConfiguration conditional on
UrlBasedViewResolver being on the classpath so that it backs of in
the absence of spring-webmvc.

Fixes gh-1793
This commit is contained in:
Andy Wilkinson 2014-10-30 15:18:39 +00:00
parent e2dd659dd1
commit 0f17142366

View File

@ -47,6 +47,7 @@ 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.web.servlet.view.UrlBasedViewResolver;
/**
* Autoconfiguration support for Groovy templates in MVC. By default creates a
@ -54,6 +55,7 @@ import org.springframework.core.io.ResourceLoader;
* can override that by providing a {@link TemplateEngine} of a different type.
*
* @author Dave Syer
* @author Andy Wilkinson
* @since 1.1.0
*/
@Configuration
@ -144,7 +146,8 @@ public class GroovyTemplateAutoConfiguration {
}
@Configuration
@ConditionalOnClass({ Servlet.class, LocaleContextHolder.class })
@ConditionalOnClass({ Servlet.class, LocaleContextHolder.class,
UrlBasedViewResolver.class })
@ConditionalOnWebApplication
public static class GroovyWebConfiguration {