diff --git a/spring-boot-autoconfigure/pom.xml b/spring-boot-autoconfigure/pom.xml index a3ff5fdb70..fd311054d8 100755 --- a/spring-boot-autoconfigure/pom.xml +++ b/spring-boot-autoconfigure/pom.xml @@ -205,11 +205,6 @@ tomcat-jdbc true - - org.apache.velocity - velocity - true - org.codehaus.btm btm diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfiguration.java deleted file mode 100644 index 6e3497134a..0000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfiguration.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.velocity; - -import java.io.IOException; -import java.util.Properties; - -import javax.annotation.PostConstruct; -import javax.servlet.Servlet; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.velocity.app.VelocityEngine; -import org.apache.velocity.exception.VelocityException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnNotWebApplication; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; -import org.springframework.boot.autoconfigure.template.TemplateLocation; -import org.springframework.boot.autoconfigure.web.ConditionalOnEnabledResourceChain; -import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.boot.web.servlet.view.velocity.EmbeddedVelocityViewResolver; -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.ui.velocity.VelocityEngineFactory; -import org.springframework.ui.velocity.VelocityEngineFactoryBean; -import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter; -import org.springframework.web.servlet.view.velocity.VelocityConfig; -import org.springframework.web.servlet.view.velocity.VelocityConfigurer; - -/** - * {@link EnableAutoConfiguration Auto-configuration} for Velocity. - * - * @author Andy Wilkinson - * @author Brian Clozel - * @since 1.1.0 - * @deprecated as of 1.4 following the deprecation of Velocity support in Spring Framework - * 4.3 - */ -@Configuration -@ConditionalOnClass({ VelocityEngine.class, VelocityEngineFactory.class }) -@AutoConfigureAfter(WebMvcAutoConfiguration.class) -@EnableConfigurationProperties(VelocityProperties.class) -@Deprecated -public class VelocityAutoConfiguration { - - private static final Log logger = LogFactory.getLog(VelocityAutoConfiguration.class); - - private final ApplicationContext applicationContext; - - private final VelocityProperties properties; - - public VelocityAutoConfiguration(ApplicationContext applicationContext, - VelocityProperties properties) { - this.applicationContext = applicationContext; - this.properties = properties; - } - - @PostConstruct - public void checkTemplateLocationExists() { - if (this.properties.isCheckTemplateLocation()) { - TemplateLocation location = new TemplateLocation( - this.properties.getResourceLoaderPath()); - if (!location.exists(this.applicationContext)) { - logger.warn("Cannot find template location: " + location - + " (please add some templates, check your Velocity " - + "configuration, or set spring.velocity." - + "checkTemplateLocation=false)"); - } - } - } - - @Deprecated - protected static class VelocityConfiguration { - - @Autowired - protected VelocityProperties properties; - - protected void applyProperties(VelocityEngineFactory factory) { - factory.setResourceLoaderPath(this.properties.getResourceLoaderPath()); - factory.setPreferFileSystemAccess(this.properties.isPreferFileSystemAccess()); - Properties velocityProperties = new Properties(); - velocityProperties.setProperty("input.encoding", - this.properties.getCharsetName()); - velocityProperties.putAll(this.properties.getProperties()); - factory.setVelocityProperties(velocityProperties); - } - - } - - @Configuration - @ConditionalOnNotWebApplication - @Deprecated - public static class VelocityNonWebConfiguration extends VelocityConfiguration { - - @Bean - @ConditionalOnMissingBean - public VelocityEngineFactoryBean velocityConfiguration() { - VelocityEngineFactoryBean velocityEngineFactoryBean = new VelocityEngineFactoryBean(); - applyProperties(velocityEngineFactoryBean); - return velocityEngineFactoryBean; - } - - } - - @Configuration - @ConditionalOnClass(Servlet.class) - @ConditionalOnWebApplication - @Deprecated - public static class VelocityWebConfiguration extends VelocityConfiguration { - - @Bean - @ConditionalOnMissingBean(VelocityConfig.class) - public VelocityConfigurer velocityConfigurer() { - VelocityConfigurer configurer = new VelocityConfigurer(); - applyProperties(configurer); - return configurer; - } - - @Bean - public VelocityEngine velocityEngine(VelocityConfigurer configurer) - throws VelocityException, IOException { - return configurer.getVelocityEngine(); - } - - @Bean - @ConditionalOnMissingBean(name = "velocityViewResolver") - @ConditionalOnProperty(name = "spring.velocity.enabled", matchIfMissing = true) - public EmbeddedVelocityViewResolver velocityViewResolver() { - EmbeddedVelocityViewResolver resolver = new EmbeddedVelocityViewResolver(); - this.properties.applyToViewResolver(resolver); - return resolver; - } - - @Bean - @ConditionalOnMissingBean - @ConditionalOnEnabledResourceChain - public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { - return new ResourceUrlEncodingFilter(); - } - - } - -} diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityProperties.java deleted file mode 100644 index c01878421d..0000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityProperties.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.velocity; - -import java.util.HashMap; -import java.util.Map; - -import org.springframework.boot.autoconfigure.template.AbstractTemplateViewResolverProperties; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.web.servlet.view.velocity.VelocityViewResolver; - -/** - * {@link ConfigurationProperties} for configuring Velocity. - * - * @author Andy Wilkinson - * @since 1.1.0 - * @deprecated as of 1.4 following the deprecation of Velocity support in Spring Framework - * 4.3 - */ -@Deprecated -@ConfigurationProperties(prefix = "spring.velocity") -public class VelocityProperties extends AbstractTemplateViewResolverProperties { - - public static final String DEFAULT_RESOURCE_LOADER_PATH = "classpath:/templates/"; - - public static final String DEFAULT_PREFIX = ""; - - public static final String DEFAULT_SUFFIX = ".vm"; - - /** - * Name of the DateTool helper object to expose in the Velocity context of the view. - */ - private String dateToolAttribute; - - /** - * Name of the NumberTool helper object to expose in the Velocity context of the view. - */ - private String numberToolAttribute; - - /** - * Additional velocity properties. - */ - private Map properties = new HashMap(); - - /** - * Template path. - */ - private String resourceLoaderPath = DEFAULT_RESOURCE_LOADER_PATH; - - /** - * Velocity Toolbox config location, for example "/WEB-INF/toolbox.xml". Automatically - * loads a Velocity Tools toolbox definition file and expose all defined tools in the - * specified scopes. - */ - private String toolboxConfigLocation; - - /** - * Prefer file system access for template loading. File system access enables hot - * detection of template changes. - */ - private boolean preferFileSystemAccess = true; - - public VelocityProperties() { - super(DEFAULT_PREFIX, DEFAULT_SUFFIX); - } - - public String getDateToolAttribute() { - return this.dateToolAttribute; - } - - public void setDateToolAttribute(String dateToolAttribute) { - this.dateToolAttribute = dateToolAttribute; - } - - public String getNumberToolAttribute() { - return this.numberToolAttribute; - } - - public void setNumberToolAttribute(String numberToolAttribute) { - this.numberToolAttribute = numberToolAttribute; - } - - public Map getProperties() { - return this.properties; - } - - public void setProperties(Map properties) { - this.properties = properties; - } - - public String getResourceLoaderPath() { - return this.resourceLoaderPath; - } - - public void setResourceLoaderPath(String resourceLoaderPath) { - this.resourceLoaderPath = resourceLoaderPath; - } - - public String getToolboxConfigLocation() { - return this.toolboxConfigLocation; - } - - public void setToolboxConfigLocation(String toolboxConfigLocation) { - this.toolboxConfigLocation = toolboxConfigLocation; - } - - public boolean isPreferFileSystemAccess() { - return this.preferFileSystemAccess; - } - - public void setPreferFileSystemAccess(boolean preferFileSystemAccess) { - this.preferFileSystemAccess = preferFileSystemAccess; - } - - @Override - public void applyToViewResolver(Object viewResolver) { - super.applyToViewResolver(viewResolver); - VelocityViewResolver resolver = (VelocityViewResolver) viewResolver; - resolver.setToolboxConfigLocation(getToolboxConfigLocation()); - resolver.setDateToolAttribute(getDateToolAttribute()); - resolver.setNumberToolAttribute(getNumberToolAttribute()); - } - -} diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProvider.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProvider.java deleted file mode 100644 index 1dd1791213..0000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProvider.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.velocity; - -import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider; -import org.springframework.boot.bind.RelaxedPropertyResolver; -import org.springframework.core.env.Environment; -import org.springframework.core.env.PropertyResolver; -import org.springframework.core.io.ResourceLoader; -import org.springframework.util.ClassUtils; - -/** - * {@link TemplateAvailabilityProvider} that provides availability information for - * Velocity view templates. - * - * @author Andy Wilkinson - * @since 1.1.0 - * @deprecated as of 1.4 following the deprecation of Velocity support in Spring Framework - * 4.3 - */ -@Deprecated -public class VelocityTemplateAvailabilityProvider - implements TemplateAvailabilityProvider { - - @Override - public boolean isTemplateAvailable(String view, Environment environment, - ClassLoader classLoader, ResourceLoader resourceLoader) { - if (ClassUtils.isPresent("org.apache.velocity.app.VelocityEngine", classLoader)) { - PropertyResolver resolver = new RelaxedPropertyResolver(environment, - "spring.velocity."); - String loaderPath = resolver.getProperty("resource-loader-path", - VelocityProperties.DEFAULT_RESOURCE_LOADER_PATH); - String prefix = resolver.getProperty("prefix", - VelocityProperties.DEFAULT_PREFIX); - String suffix = resolver.getProperty("suffix", - VelocityProperties.DEFAULT_SUFFIX); - return resourceLoader.getResource(loaderPath + prefix + view + suffix) - .exists(); - } - return false; - } - -} diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/package-info.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/package-info.java deleted file mode 100644 index 571f4799d4..0000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/velocity/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Auto-configuration for Velocity. - * @deprecated as of 1.4 following the deprecation of Velocity support in Spring Framework - * 4.3 - */ -package org.springframework.boot.autoconfigure.velocity; 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 cd9e241c6a..03e96c9a9a 100644 --- a/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories @@ -84,7 +84,6 @@ org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration,\ org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration,\ org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration,\ org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration,\ -org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration,\ org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\ org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration,\ @@ -113,5 +112,4 @@ org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailability org.springframework.boot.autoconfigure.mustache.MustacheTemplateAvailabilityProvider,\ org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\ org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\ -org.springframework.boot.autoconfigure.velocity.VelocityTemplateAvailabilityProvider,\ org.springframework.boot.autoconfigure.web.JspTemplateAvailabilityProvider diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelectorTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelectorTests.java index 2642cc0cd1..306b132ac9 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelectorTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelectorTests.java @@ -27,8 +27,8 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionEvaluationReport; import org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration; +import org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration; import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration; -import org.springframework.boot.autoconfigure.velocity.VelocityAutoConfiguration; import org.springframework.core.annotation.AnnotationAttributes; import org.springframework.core.io.DefaultResourceLoader; import org.springframework.core.io.support.SpringFactoriesLoader; @@ -46,7 +46,6 @@ import static org.mockito.BDDMockito.given; * @author Stephane Nicoll * */ -@SuppressWarnings("deprecation") public class EnableAutoConfigurationImportSelectorTests { private final EnableAutoConfigurationImportSelector importSelector = new EnableAutoConfigurationImportSelector(); @@ -92,12 +91,12 @@ public class EnableAutoConfigurationImportSelectorTests { @Test public void classNamesExclusionsAreApplied() { configureExclusions(new String[0], - new String[] { VelocityAutoConfiguration.class.getName() }, + new String[] { MustacheAutoConfiguration.class.getName() }, new String[0]); String[] imports = this.importSelector.selectImports(this.annotationMetadata); assertThat(imports).hasSize(getAutoConfigurationClassNames().size() - 1); assertThat(ConditionEvaluationReport.get(this.beanFactory).getExclusions()) - .contains(VelocityAutoConfiguration.class.getName()); + .contains(MustacheAutoConfiguration.class.getName()); } @Test @@ -114,12 +113,12 @@ public class EnableAutoConfigurationImportSelectorTests { public void severalPropertyExclusionsAreApplied() { configureExclusions(new String[0], new String[0], new String[] { FreeMarkerAutoConfiguration.class.getName(), - VelocityAutoConfiguration.class.getName() }); + MustacheAutoConfiguration.class.getName() }); String[] imports = this.importSelector.selectImports(this.annotationMetadata); assertThat(imports).hasSize(getAutoConfigurationClassNames().size() - 2); assertThat(ConditionEvaluationReport.get(this.beanFactory).getExclusions()) .contains(FreeMarkerAutoConfiguration.class.getName(), - VelocityAutoConfiguration.class.getName()); + MustacheAutoConfiguration.class.getName()); } @Test @@ -128,24 +127,24 @@ public class EnableAutoConfigurationImportSelectorTests { this.environment.setProperty("spring.autoconfigure.exclude[0]", FreeMarkerAutoConfiguration.class.getName()); this.environment.setProperty("spring.autoconfigure.exclude[1]", - VelocityAutoConfiguration.class.getName()); + MustacheAutoConfiguration.class.getName()); String[] imports = this.importSelector.selectImports(this.annotationMetadata); assertThat(imports).hasSize(getAutoConfigurationClassNames().size() - 2); assertThat(ConditionEvaluationReport.get(this.beanFactory).getExclusions()) .contains(FreeMarkerAutoConfiguration.class.getName(), - VelocityAutoConfiguration.class.getName()); + MustacheAutoConfiguration.class.getName()); } @Test public void combinedExclusionsAreApplied() { - configureExclusions(new String[] { VelocityAutoConfiguration.class.getName() }, + configureExclusions(new String[] { MustacheAutoConfiguration.class.getName() }, new String[] { FreeMarkerAutoConfiguration.class.getName() }, new String[] { ThymeleafAutoConfiguration.class.getName() }); String[] imports = this.importSelector.selectImports(this.annotationMetadata); assertThat(imports).hasSize(getAutoConfigurationClassNames().size() - 3); assertThat(ConditionEvaluationReport.get(this.beanFactory).getExclusions()) .contains(FreeMarkerAutoConfiguration.class.getName(), - VelocityAutoConfiguration.class.getName(), + MustacheAutoConfiguration.class.getName(), ThymeleafAutoConfiguration.class.getName()); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfigurationTests.java deleted file mode 100644 index c5ddf074b8..0000000000 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityAutoConfigurationTests.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.velocity; - -import java.io.File; -import java.io.StringWriter; -import java.util.Locale; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.velocity.Template; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.app.VelocityEngine; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -import org.springframework.boot.test.rule.OutputCapture; -import org.springframework.boot.test.util.EnvironmentTestUtils; -import org.springframework.boot.web.servlet.view.velocity.EmbeddedVelocityViewResolver; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.mock.web.MockServletContext; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.View; -import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter; -import org.springframework.web.servlet.support.RequestContext; -import org.springframework.web.servlet.view.AbstractTemplateViewResolver; -import org.springframework.web.servlet.view.velocity.VelocityConfigurer; -import org.springframework.web.servlet.view.velocity.VelocityViewResolver; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.Matchers.containsString; - -/** - * Tests for {@link VelocityAutoConfiguration}. - * - * @author Andy Wilkinson - * @author Stephane Nicoll - */ -@SuppressWarnings("deprecation") -public class VelocityAutoConfigurationTests { - - @Rule - public OutputCapture output = new OutputCapture(); - - private AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); - - @Before - public void setupContext() { - this.context.setServletContext(new MockServletContext()); - } - - @After - public void close() { - if (this.context != null) { - this.context.close(); - } - } - - @Test - public void defaultConfiguration() { - registerAndRefreshContext(); - assertThat(this.context.getBean(VelocityViewResolver.class)).isNotNull(); - assertThat(this.context.getBean(VelocityConfigurer.class)).isNotNull(); - } - - @Test - public void nonExistentTemplateLocation() { - registerAndRefreshContext( - "spring.velocity.resourceLoaderPath:" + "classpath:/does-not-exist/"); - this.output.expect(containsString("Cannot find template location")); - } - - @Test - public void emptyTemplateLocation() { - new File("target/test-classes/templates/empty-directory").mkdir(); - registerAndRefreshContext("spring.velocity.resourceLoaderPath:" - + "classpath:/templates/empty-directory/"); - } - - @Test - public void defaultViewResolution() throws Exception { - registerAndRefreshContext(); - MockHttpServletResponse response = render("home"); - String result = response.getContentAsString(); - assertThat(result).contains("home"); - assertThat(response.getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - public void customContentType() throws Exception { - registerAndRefreshContext("spring.velocity.contentType:application/json"); - MockHttpServletResponse response = render("home"); - String result = response.getContentAsString(); - assertThat(result).contains("home"); - assertThat(response.getContentType()).isEqualTo("application/json;charset=UTF-8"); - } - - @Test - public void customCharset() throws Exception { - registerAndRefreshContext("spring.velocity.charset:ISO-8859-1"); - assertThat(this.context.getBean(VelocityConfigurer.class).getVelocityEngine() - .getProperty("input.encoding")).isEqualTo("ISO-8859-1"); - } - - @Test - public void customPrefix() throws Exception { - registerAndRefreshContext("spring.velocity.prefix:prefix/"); - MockHttpServletResponse response = render("prefixed"); - String result = response.getContentAsString(); - assertThat(result).contains("prefixed"); - } - - @Test - public void customSuffix() throws Exception { - registerAndRefreshContext("spring.velocity.suffix:.freemarker"); - MockHttpServletResponse response = render("suffixed"); - String result = response.getContentAsString(); - assertThat(result).contains("suffixed"); - } - - @Test - public void customTemplateLoaderPath() throws Exception { - registerAndRefreshContext( - "spring.velocity.resourceLoaderPath:classpath:/custom-templates/"); - MockHttpServletResponse response = render("custom"); - String result = response.getContentAsString(); - assertThat(result).contains("custom"); - } - - @Test - public void disableCache() { - registerAndRefreshContext("spring.velocity.cache:false"); - assertThat(this.context.getBean(VelocityViewResolver.class).getCacheLimit()) - .isEqualTo(0); - } - - @Test - public void customVelocitySettings() { - registerAndRefreshContext( - "spring.velocity.properties.directive.parse.max.depth:10"); - assertThat(this.context.getBean(VelocityConfigurer.class).getVelocityEngine() - .getProperty("directive.parse.max.depth")).isEqualTo("10"); - } - - @Test - public void renderTemplate() throws Exception { - registerAndRefreshContext(); - VelocityConfigurer velocity = this.context.getBean(VelocityConfigurer.class); - StringWriter writer = new StringWriter(); - Template template = velocity.getVelocityEngine().getTemplate("message.vm"); - template.process(); - VelocityContext velocityContext = new VelocityContext(); - velocityContext.put("greeting", "Hello World"); - template.merge(velocityContext, writer); - assertThat(writer.toString()).contains("Hello World"); - } - - @Test - public void renderNonWebAppTemplate() throws Exception { - AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( - VelocityAutoConfiguration.class); - try { - VelocityEngine velocity = context.getBean(VelocityEngine.class); - StringWriter writer = new StringWriter(); - Template template = velocity.getTemplate("message.vm"); - template.process(); - VelocityContext velocityContext = new VelocityContext(); - velocityContext.put("greeting", "Hello World"); - template.merge(velocityContext, writer); - assertThat(writer.toString()).contains("Hello World"); - } - finally { - context.close(); - } - } - - @Test - public void usesEmbeddedVelocityViewResolver() { - registerAndRefreshContext("spring.velocity.toolbox:/toolbox.xml"); - VelocityViewResolver resolver = this.context.getBean(VelocityViewResolver.class); - assertThat(resolver).isInstanceOf(EmbeddedVelocityViewResolver.class); - } - - @Test - public void registerResourceHandlingFilterDisabledByDefault() throws Exception { - registerAndRefreshContext(); - assertThat(this.context.getBeansOfType(ResourceUrlEncodingFilter.class)) - .isEmpty(); - } - - @Test - public void registerResourceHandlingFilterOnlyIfResourceChainIsEnabled() - throws Exception { - registerAndRefreshContext("spring.resources.chain.enabled:true"); - assertThat(this.context.getBean(ResourceUrlEncodingFilter.class)).isNotNull(); - } - - @Test - public void allowSessionOverride() { - registerAndRefreshContext("spring.velocity.allow-session-override:true"); - AbstractTemplateViewResolver viewResolver = this.context - .getBean(VelocityViewResolver.class); - assertThat(viewResolver).extracting("allowSessionOverride").containsExactly(true); - } - - private void registerAndRefreshContext(String... env) { - EnvironmentTestUtils.addEnvironment(this.context, env); - this.context.register(VelocityAutoConfiguration.class); - this.context.refresh(); - } - - public String getGreeting() { - return "Hello World"; - } - - private MockHttpServletResponse render(String viewName) throws Exception { - VelocityViewResolver resolver = this.context.getBean(VelocityViewResolver.class); - View view = resolver.resolveViewName(viewName, Locale.UK); - assertThat(view).isNotNull(); - HttpServletRequest request = new MockHttpServletRequest(); - request.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, - this.context); - MockHttpServletResponse response = new MockHttpServletResponse(); - view.render(null, request, response); - return response; - } - -} diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProviderTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProviderTests.java deleted file mode 100644 index 870729f915..0000000000 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/velocity/VelocityTemplateAvailabilityProviderTests.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.autoconfigure.velocity; - -import org.junit.Test; - -import org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.ResourceLoader; -import org.springframework.mock.env.MockEnvironment; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link VelocityTemplateAvailabilityProvider}. - * - * @author Andy Wilkinson - */ -@SuppressWarnings("deprecation") -public class VelocityTemplateAvailabilityProviderTests { - - private final TemplateAvailabilityProvider provider = new VelocityTemplateAvailabilityProvider(); - - private final ResourceLoader resourceLoader = new DefaultResourceLoader(); - - private final MockEnvironment environment = new MockEnvironment(); - - @Test - public void availabilityOfTemplateInDefaultLocation() { - assertThat(this.provider.isTemplateAvailable("home", this.environment, - getClass().getClassLoader(), this.resourceLoader)).isTrue(); - } - - @Test - public void availabilityOfTemplateThatDoesNotExist() { - assertThat(this.provider.isTemplateAvailable("whatever", this.environment, - getClass().getClassLoader(), this.resourceLoader)).isFalse(); - } - - @Test - public void availabilityOfTemplateWithCustomLoaderPath() { - this.environment.setProperty("spring.velocity.resourceLoaderPath", - "classpath:/custom-templates/"); - assertThat(this.provider.isTemplateAvailable("custom", this.environment, - getClass().getClassLoader(), this.resourceLoader)).isTrue(); - } - - @Test - public void availabilityOfTemplateWithCustomPrefix() { - this.environment.setProperty("spring.velocity.prefix", "prefix/"); - assertThat(this.provider.isTemplateAvailable("prefixed", this.environment, - getClass().getClassLoader(), this.resourceLoader)).isTrue(); - } - - @Test - public void availabilityOfTemplateWithCustomSuffix() { - this.environment.setProperty("spring.velocity.suffix", ".freemarker"); - assertThat(this.provider.isTemplateAvailable("suffixed", this.environment, - getClass().getClassLoader(), this.resourceLoader)).isTrue(); - } -} diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index 8a09d165de..0d66b62881 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -179,8 +179,6 @@ 2.1.0.RELEASE 8.5.5 1.4.3.Final - 1.7 - 2.0 9f96c74 0.32 1.6.3 @@ -496,11 +494,6 @@ spring-boot-starter-validation 1.5.0.BUILD-SNAPSHOT - - org.springframework.boot - spring-boot-starter-velocity - 1.5.0.BUILD-SNAPSHOT - org.springframework.boot spring-boot-starter-web @@ -1336,22 +1329,6 @@ tomcat-jsp-api ${tomcat.version} - - org.apache.velocity - velocity - ${velocity.version} - - - org.apache.velocity - velocity-tools - ${velocity-tools.version} - - - commons-logging - commons-logging - - - org.aspectj aspectjrt diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java index c3814a03fe..8f31f4f874 100755 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/env/DevToolsPropertyDefaultsPostProcessor.java @@ -46,7 +46,6 @@ public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostPro properties.put("spring.thymeleaf.cache", "false"); properties.put("spring.freemarker.cache", "false"); properties.put("spring.groovy.template.cache", "false"); - properties.put("spring.velocity.cache", "false"); properties.put("spring.mustache.cache", "false"); properties.put("server.session.persistent", "true"); properties.put("spring.h2.console.enabled", "true"); diff --git a/spring-boot-docs/pom.xml b/spring-boot-docs/pom.xml index fd753f1741..00c64be0bd 100644 --- a/spring-boot-docs/pom.xml +++ b/spring-boot-docs/pom.xml @@ -304,16 +304,6 @@ tomcat-jdbc true - - org.apache.velocity - velocity - true - - - org.apache.velocity - velocity-tools - true - org.assertj assertj-core diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 25f2564f11..27cae660c0 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -407,28 +407,6 @@ content into your application; rather pick only the properties that you need. spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain. spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved. - # VELOCITY TEMPLATES ({sc-spring-boot-autoconfigure}/velocity/VelocityAutoConfiguration.{sc-ext}[VelocityAutoConfiguration]) - spring.velocity.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name. - spring.velocity.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name. - spring.velocity.cache= # Enable template caching. - spring.velocity.charset=UTF-8 # Template encoding. - spring.velocity.check-template-location=true # Check that the templates location exists. - spring.velocity.content-type=text/html # Content-Type value. - spring.velocity.date-tool-attribute= # Name of the DateTool helper object to expose in the Velocity context of the view. - spring.velocity.enabled=true # Enable MVC view resolution for this technology. - spring.velocity.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template. - spring.velocity.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template. - spring.velocity.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext". - spring.velocity.number-tool-attribute= # Name of the NumberTool helper object to expose in the Velocity context of the view. - spring.velocity.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes. - spring.velocity.prefix= # Prefix that gets prepended to view names when building a URL. - spring.velocity.properties.*= # Additional velocity properties. - spring.velocity.request-context-attribute= # Name of the RequestContext attribute for all views. - spring.velocity.resource-loader-path=classpath:/templates/ # Template path. - spring.velocity.suffix=.vm # Suffix that gets appended to view names when building a URL. - spring.velocity.toolbox-config-location= # Velocity Toolbox config location. For instance `/WEB-INF/toolbox.xml` - spring.velocity.view-names= # White list of view names that can be resolved. - # SPRING WEB SERVICES ({sc-spring-boot-autoconfigure}/webservices/WebServicesProperties.{sc-ext}[WebServicesProperties]) spring.webservices.path=/services # Path that serves as the base URI for the services. spring.webservices.servlet.init= # Servlet init parameters to pass to Spring Web Services. diff --git a/spring-boot-docs/src/main/asciidoc/howto.adoc b/spring-boot-docs/src/main/asciidoc/howto.adoc index 844a75abba..3480429738 100644 --- a/spring-boot-docs/src/main/asciidoc/howto.adoc +++ b/spring-boot-docs/src/main/asciidoc/howto.adoc @@ -1417,41 +1417,11 @@ added. suffix (externalized to `spring.groovy.template.prefix` and `spring.groovy.template.suffix`, defaults '`classpath:/templates/`' and '`.tpl`' respectively). It can be overridden by providing a bean of the same name. -* If you use Velocity you will also have a `VelocityViewResolver` with id '`velocityViewResolver`'. - It looks for resources in a loader path (externalized to `spring.velocity.resourceLoaderPath`, - default '`classpath:/templates/`') by surrounding the view name with a prefix and suffix - (externalized to `spring.velocity.prefix` and `spring.velocity.suffix`, with empty and '`.vm`' - defaults respectively). It can be overridden by providing a bean of the same name. Check out {sc-spring-boot-autoconfigure}/web/WebMvcAutoConfiguration.{sc-ext}[`WebMvcAutoConfiguration`], {sc-spring-boot-autoconfigure}/thymeleaf/ThymeleafAutoConfiguration.{sc-ext}[`ThymeleafAutoConfiguration`], -{sc-spring-boot-autoconfigure}/freemarker/FreeMarkerAutoConfiguration.{sc-ext}[`FreeMarkerAutoConfiguration`], -{sc-spring-boot-autoconfigure}/groovy/template/GroovyTemplateAutoConfiguration.{sc-ext}[`GroovyTemplateAutoConfiguration`] and -{sc-spring-boot-autoconfigure}/velocity/VelocityAutoConfiguration.{sc-ext}[`VelocityAutoConfiguration`] - - - -[[howto-customize-view-resolvers-velocity]] -=== Velocity -By default, Spring Boot configures a `VelocityViewResolver`. If you need a -`VelocityLayoutViewResolver` instead, you can easily configure your own by creating a bean -with name `velocityViewResolver`. You can also inject the `VelocityProperties` instance to -apply the base defaults to your custom view resolver. - -The following example replaces the auto-configured velocity view resolver with a -`VelocityLayoutViewResolver` defining a customized `layoutUrl` and all settings that would -have been applied from the auto-configuration: - -[source,java,indent=0,subs="verbatim,quotes,attributes"] ----- - @Bean(name = "velocityViewResolver") - public VelocityLayoutViewResolver velocityViewResolver(VelocityProperties properties) { - VelocityLayoutViewResolver resolver = new VelocityLayoutViewResolver(); - properties.applyToViewResolver(resolver); - resolver.setLayoutUrl("layout/default.vm"); - return resolver; - } ----- +{sc-spring-boot-autoconfigure}/freemarker/FreeMarkerAutoConfiguration.{sc-ext}[`FreeMarkerAutoConfiguration`] and +{sc-spring-boot-autoconfigure}/groovy/template/GroovyTemplateAutoConfiguration.{sc-ext}[`GroovyTemplateAutoConfiguration`] @@ -2370,14 +2340,6 @@ for other Groovy customization options. -[[howto-reload-velocity-content]] -==== Velocity templates -If you are using Velocity, then set `spring.velocity.cache` to `false`. See -{sc-spring-boot-autoconfigure}/velocity/VelocityAutoConfiguration.{sc-ext}[`VelocityAutoConfiguration`] -for other Velocity customization options. - - - [[howto-reload-fast-restart]] === Fast application restarts The `spring-boot-devtools` module includes support for automatic application restarts. diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 277393bca7..7c31717d64 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -1774,10 +1774,9 @@ solution for all static resources, effectively adding a content hash in URLs, su ---- NOTE: Links to resources are rewritten at runtime in template, thanks to a -`ResourceUrlEncodingFilter`, auto-configured for Thymeleaf, Velocity and FreeMarker. You -should manually declare this filter when using JSPs. Other template engines aren't -automatically supported right now, but can be with custom template macros/helpers and the -use of the +`ResourceUrlEncodingFilter`, auto-configured for Thymeleaf and FreeMarker. You should +manually declare this filter when using JSPs. Other template engines aren't automatically +supported right now, but can be with custom template macros/helpers and the use of the {spring-javadoc}/web/servlet/resource/ResourceUrlProvider.{dc-ext}[`ResourceUrlProvider`]. When loading resources dynamically with, for example, a JavaScript module loader, renaming @@ -1821,7 +1820,7 @@ will automatically configure Spring MVC to use it. [[boot-features-spring-mvc-template-engines]] ==== Template engines As well as REST web services, you can also use Spring MVC to serve dynamic HTML content. -Spring MVC supports a variety of templating technologies including Velocity, FreeMarker +Spring MVC supports a variety of templating technologies including Thymeleaf, FreeMarker and JSPs. Many other templating engines also ship their own Spring MVC integrations. Spring Boot includes auto-configuration support for the following templating engines: @@ -1829,7 +1828,6 @@ Spring Boot includes auto-configuration support for the following templating eng * http://freemarker.org/docs/[FreeMarker] * http://docs.groovy-lang.org/docs/next/html/documentation/template-engines.html#_the_markuptemplateengine[Groovy] * http://www.thymeleaf.org[Thymeleaf] - * http://velocity.apache.org[Velocity] (deprecated in 1.4) * http://mustache.github.io/[Mustache] TIP: JSPs should be avoided if possible, there are several diff --git a/spring-boot-samples/README.adoc b/spring-boot-samples/README.adoc index c286f642f6..a75684ab62 100644 --- a/spring-boot-samples/README.adoc +++ b/spring-boot-samples/README.adoc @@ -219,9 +219,6 @@ The following sample applications are provided: | link:spring-boot-sample-undertow-ssl[spring-boot-sample-undertow-ssl] | Embedded Undertow configured to use SSL -| link:spring-boot-sample-velocity[spring-boot-sample-velocity] -| Non-web application that uses Velocity templates - | link:spring-boot-sample-war[spring-boot-sample-war] | Web application packaged as a war file @@ -258,9 +255,6 @@ The following sample applications are provided: | link:spring-boot-sample-web-ui[spring-boot-sample-web-ui] | Web application with a basic UI built using Bootstrap and JQuery -| link:spring-boot-sample-web-velocity[spring-boot-sample-web-velocity] -| Web application that uses Velocity templates - | link:spring-boot-sample-webservices[spring-boot-sample-webservices] | Simple contract-first SOAP web service with Spring Web Services diff --git a/spring-boot-samples/pom.xml b/spring-boot-samples/pom.xml index 40cb914ff9..5b4d6fc4d6 100644 --- a/spring-boot-samples/pom.xml +++ b/spring-boot-samples/pom.xml @@ -92,7 +92,6 @@ spring-boot-sample-traditional spring-boot-sample-undertow spring-boot-sample-undertow-ssl - spring-boot-sample-velocity spring-boot-sample-war spring-boot-sample-web-freemarker spring-boot-sample-web-groovy-templates @@ -106,7 +105,6 @@ spring-boot-sample-web-static spring-boot-sample-web-thymeleaf3 spring-boot-sample-web-ui - spring-boot-sample-web-velocity spring-boot-sample-websocket-jetty spring-boot-sample-websocket-tomcat spring-boot-sample-websocket-undertow diff --git a/spring-boot-samples/spring-boot-sample-velocity/pom.xml b/spring-boot-samples/spring-boot-sample-velocity/pom.xml deleted file mode 100644 index f88826a4a2..0000000000 --- a/spring-boot-samples/spring-boot-sample-velocity/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - 4.0.0 - - - org.springframework.boot - spring-boot-samples - 1.5.0.BUILD-SNAPSHOT - - spring-boot-sample-velocity - Spring Boot Web Velocity Sample - Spring Boot Web Velocity Sample - http://projects.spring.io/spring-boot/ - - Pivotal Software, Inc. - http://www.spring.io - - - ${basedir}/../.. - / - - - - org.springframework.boot - spring-boot-starter - - - org.springframework - spring-context-support - - - org.apache.velocity - velocity - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - - - - diff --git a/spring-boot-samples/spring-boot-sample-velocity/src/main/java/sample/velocity/SampleVelocityApplication.java b/spring-boot-samples/spring-boot-sample-velocity/src/main/java/sample/velocity/SampleVelocityApplication.java deleted file mode 100644 index 4c8e008010..0000000000 --- a/spring-boot-samples/spring-boot-sample-velocity/src/main/java/sample/velocity/SampleVelocityApplication.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2012-2014 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sample.velocity; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -import org.apache.velocity.app.VelocityEngine; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.ui.velocity.VelocityEngineUtils; - -@SpringBootApplication -@Deprecated -public class SampleVelocityApplication implements CommandLineRunner { - - @Value("${application.message}") - private String message; - - @Autowired - private VelocityEngine engine; - - @Override - public void run(String... args) throws Exception { - Map model = new HashMap(); - model.put("time", new Date()); - model.put("message", this.message); - System.out.println(VelocityEngineUtils.mergeTemplateIntoString(this.engine, - "welcome.vm", "UTF-8", model)); - } - - public static void main(String[] args) throws Exception { - SpringApplication.run(SampleVelocityApplication.class, args); - } - -} diff --git a/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/application.properties b/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/application.properties deleted file mode 100644 index e504f79eb9..0000000000 --- a/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ -application.message: Hello, Andy diff --git a/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/templates/welcome.vm b/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/templates/welcome.vm deleted file mode 100644 index 7560db959d..0000000000 --- a/spring-boot-samples/spring-boot-sample-velocity/src/main/resources/templates/welcome.vm +++ /dev/null @@ -1,2 +0,0 @@ -From application: $time -Message: $message \ No newline at end of file diff --git a/spring-boot-samples/spring-boot-sample-velocity/src/test/java/sample/velocity/SampleVelocityApplicationTests.java b/spring-boot-samples/spring-boot-sample-velocity/src/test/java/sample/velocity/SampleVelocityApplicationTests.java deleted file mode 100644 index 3f6d109e2a..0000000000 --- a/spring-boot-samples/spring-boot-sample-velocity/src/test/java/sample/velocity/SampleVelocityApplicationTests.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sample.velocity; - -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.rule.OutputCapture; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Basic integration tests for Velocity application with no web layer. - * - * @author Dave Syer - */ -@RunWith(SpringRunner.class) -@SpringBootTest -public class SampleVelocityApplicationTests { - - @ClassRule - public static OutputCapture output = new OutputCapture(); - - @Test - public void testVelocityTemplate() throws Exception { - String result = SampleVelocityApplicationTests.output.toString(); - assertThat(result).contains("Hello, Andy"); - } - -} diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/pom.xml b/spring-boot-samples/spring-boot-sample-web-velocity/pom.xml deleted file mode 100644 index 2a021451ea..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - 4.0.0 - - - org.springframework.boot - spring-boot-samples - 1.5.0.BUILD-SNAPSHOT - - spring-boot-sample-web-velocity - Spring Boot Web Velocity Sample - Spring Boot Web Velocity Sample - http://projects.spring.io/spring-boot/ - - Pivotal Software, Inc. - http://www.spring.io - - - ${basedir}/../.. - / - - - - org.springframework.boot - spring-boot-starter-velocity - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - - - - diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/SampleWebVelocityApplication.java b/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/SampleWebVelocityApplication.java deleted file mode 100644 index ae63ebcad0..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/SampleWebVelocityApplication.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2012-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sample.web.velocity; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class SampleWebVelocityApplication { - - public static void main(String[] args) throws Exception { - SpringApplication.run(SampleWebVelocityApplication.class, args); - } - -} diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/WelcomeController.java b/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/WelcomeController.java deleted file mode 100644 index 417cccef3a..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/java/sample/web/velocity/WelcomeController.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sample.web.velocity; - -import java.util.Date; -import java.util.Map; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; - -@Controller -public class WelcomeController { - - @Value("${application.message:Hello World}") - private String message = "Hello World"; - - @GetMapping("/") - public String welcome(Map model) { - model.put("time", new Date()); - model.put("message", this.message); - return "welcome"; - } - -} diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/application.properties b/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/application.properties deleted file mode 100644 index 11927c0966..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/application.properties +++ /dev/null @@ -1,2 +0,0 @@ -application.message: Hello, Andy -spring.velocity.dateToolAttribute: dateTool \ No newline at end of file diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/error.vm b/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/error.vm deleted file mode 100644 index ace4211012..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/error.vm +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - Something went wrong: ${status} ${error} - - - diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/welcome.vm b/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/welcome.vm deleted file mode 100644 index 85f409d0f0..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/main/resources/templates/welcome.vm +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Time: -
    -
  • From controller: $time
  • -
  • From velocity: $dateTool
  • -
- Message: $message - - - diff --git a/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java b/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java deleted file mode 100644 index c7c76f243b..0000000000 --- a/spring-boot-samples/spring-boot-sample-web-velocity/src/test/java/sample/web/velocity/SampleWebVelocityApplicationTests.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package sample.web.velocity; - -import java.util.Arrays; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Basic integration tests for Velocity application. - * - * @author Phillip Webb - * @author Andy Wilkinson - */ -@RunWith(SpringRunner.class) -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@DirtiesContext -public class SampleWebVelocityApplicationTests { - - @Autowired - private TestRestTemplate restTemplate; - - @Test - public void testVelocityTemplate() throws Exception { - ResponseEntity entity = this.restTemplate.getForEntity("/", String.class); - assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK); - assertThat(entity.getBody()).contains("Hello, Andy"); - } - - @Test - public void testVelocityErrorTemplate() throws Exception { - HttpHeaders headers = new HttpHeaders(); - headers.setAccept(Arrays.asList(MediaType.TEXT_HTML)); - HttpEntity requestEntity = new HttpEntity(headers); - - ResponseEntity responseEntity = this.restTemplate - .exchange("/does-not-exist", HttpMethod.GET, requestEntity, String.class); - - assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND); - assertThat(responseEntity.getBody()) - .contains("Something went wrong: 404 Not Found"); - } - -} diff --git a/spring-boot-starters/pom.xml b/spring-boot-starters/pom.xml index 29937f00fe..9f10942f9f 100644 --- a/spring-boot-starters/pom.xml +++ b/spring-boot-starters/pom.xml @@ -66,7 +66,6 @@ spring-boot-starter-tomcat spring-boot-starter-undertow spring-boot-starter-validation - spring-boot-starter-velocity spring-boot-starter-web spring-boot-starter-websocket spring-boot-starter-web-services diff --git a/spring-boot-starters/spring-boot-starter-velocity/pom.xml b/spring-boot-starters/spring-boot-starter-velocity/pom.xml deleted file mode 100644 index 57b63a0868..0000000000 --- a/spring-boot-starters/spring-boot-starter-velocity/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starters - 1.5.0.BUILD-SNAPSHOT - - spring-boot-starter-velocity - Spring Boot Velocity Starter - Starter for building MVC web applications using Velocity views. - Deprecated since 1.4 - http://projects.spring.io/spring-boot/ - - Pivotal Software, Inc. - http://www.spring.io - - - ${basedir}/../.. - - - - org.springframework.boot - spring-boot-starter - - - org.springframework.boot - spring-boot-starter-web - - - commons-beanutils - commons-beanutils - - - commons-collections - commons-collections - - - commons-digester - commons-digester - - - org.apache.velocity - velocity - - - org.apache.velocity - velocity-tools - - - org.springframework - spring-context-support - - - diff --git a/spring-boot/pom.xml b/spring-boot/pom.xml index 916c29bd24..829d8092f2 100644 --- a/spring-boot/pom.xml +++ b/spring-boot/pom.xml @@ -109,16 +109,6 @@ tomcat-embed-jasper true
- - org.apache.velocity - velocity - true - - - org.apache.velocity - velocity-tools - true - org.assertj assertj-core diff --git a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxView.java b/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxView.java deleted file mode 100644 index d667e83012..0000000000 --- a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxView.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.web.servlet.view.velocity; - -import java.io.InputStream; -import java.util.Map; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.aopalliance.intercept.MethodInterceptor; -import org.aopalliance.intercept.MethodInvocation; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.context.Context; - -import org.springframework.aop.framework.ProxyFactory; -import org.springframework.core.io.ClassPathResource; -import org.springframework.web.servlet.view.velocity.VelocityToolboxView; - -/** - * Extended version of {@link VelocityToolboxView} that can load toolbox locations from - * the classpath as well as the servlet context. This is useful when running in an - * embedded web server. - * - * @author Phillip Webb - * @author Andy Wilkinson - * @since 1.2.5 - */ -@SuppressWarnings("deprecation") -public class EmbeddedVelocityToolboxView extends VelocityToolboxView { - - @Override - protected Context createVelocityContext(Map model, - HttpServletRequest request, HttpServletResponse response) throws Exception { - org.apache.velocity.tools.view.context.ChainedContext context = new org.apache.velocity.tools.view.context.ChainedContext( - new VelocityContext(model), getVelocityEngine(), request, response, - getServletContext()); - if (getToolboxConfigLocation() != null) { - setContextToolbox(context); - } - return context; - } - - @SuppressWarnings("unchecked") - private void setContextToolbox( - org.apache.velocity.tools.view.context.ChainedContext context) { - org.apache.velocity.tools.view.ToolboxManager toolboxManager = org.apache.velocity.tools.view.servlet.ServletToolboxManager - .getInstance(getToolboxConfigFileAwareServletContext(), - getToolboxConfigLocation()); - Map toolboxContext = toolboxManager.getToolbox(context); - context.setToolbox(toolboxContext); - } - - private ServletContext getToolboxConfigFileAwareServletContext() { - ProxyFactory factory = new ProxyFactory(); - factory.setTarget(getServletContext()); - factory.addAdvice(new GetResourceMethodInterceptor(getToolboxConfigLocation())); - return (ServletContext) factory.getProxy(getClass().getClassLoader()); - } - - /** - * {@link MethodInterceptor} to allow the calls to getResourceAsStream() to resolve - * the toolboxFile from the classpath. - */ - private static class GetResourceMethodInterceptor implements MethodInterceptor { - - private final String toolboxFile; - - GetResourceMethodInterceptor(String toolboxFile) { - if (toolboxFile != null && !toolboxFile.startsWith("/")) { - toolboxFile = "/" + toolboxFile; - } - this.toolboxFile = toolboxFile; - } - - @Override - public Object invoke(MethodInvocation invocation) throws Throwable { - if (invocation.getMethod().getName().equals("getResourceAsStream") - && invocation.getArguments()[0].equals(this.toolboxFile)) { - InputStream inputStream = (InputStream) invocation.proceed(); - if (inputStream == null) { - try { - inputStream = new ClassPathResource(this.toolboxFile, - Thread.currentThread().getContextClassLoader()) - .getInputStream(); - } - catch (Exception ex) { - // Ignore - } - } - return inputStream; - } - return invocation.proceed(); - } - - } - -} diff --git a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolver.java b/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolver.java deleted file mode 100644 index b827cbedd7..0000000000 --- a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolver.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.web.servlet.view.velocity; - -import org.springframework.web.servlet.view.velocity.VelocityView; -import org.springframework.web.servlet.view.velocity.VelocityViewResolver; - -/** - * Extended version of {@link VelocityViewResolver} that uses - * {@link EmbeddedVelocityToolboxView} when the {@link #setToolboxConfigLocation(String) - * toolboxConfigLocation} is set. - * - * @author Phillip Webb - * @since 1.2.5 - * @deprecated as of 1.4 following the deprecation of Velocity support in Spring Framework - * 4.3 - */ -@Deprecated -public class EmbeddedVelocityViewResolver extends VelocityViewResolver { - - private String toolboxConfigLocation; - - @Override - protected void initApplicationContext() { - if (this.toolboxConfigLocation != null) { - if (VelocityView.class.equals(getViewClass())) { - this.logger.info("Using EmbeddedVelocityToolboxView instead of " - + "default VelocityView due to specified toolboxConfigLocation"); - setViewClass(EmbeddedVelocityToolboxView.class); - } - } - super.initApplicationContext(); - } - - @Override - public void setToolboxConfigLocation(String toolboxConfigLocation) { - super.setToolboxConfigLocation(toolboxConfigLocation); - this.toolboxConfigLocation = toolboxConfigLocation; - } - -} diff --git a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/package-info.java b/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/package-info.java deleted file mode 100644 index 751e75957c..0000000000 --- a/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/velocity/package-info.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2012-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * Velocity support classes. - */ -package org.springframework.boot.web.servlet.view.velocity; diff --git a/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxViewTests.java b/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxViewTests.java deleted file mode 100644 index d696e10a96..0000000000 --- a/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityToolboxViewTests.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.web.servlet.view.velocity; - -import java.util.LinkedHashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.velocity.tools.ToolContext; -import org.junit.Test; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.mock.web.MockServletContext; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.view.velocity.VelocityConfigurer; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link EmbeddedVelocityToolboxView}. - * - * @author Phillip Webb - */ -@SuppressWarnings("deprecation") -public class EmbeddedVelocityToolboxViewTests { - - private static final String PATH = EmbeddedVelocityToolboxViewTests.class.getPackage() - .getName().replace(".", "/"); - - @Test - public void loadsContextFromClassPath() throws Exception { - ToolContext context = getToolContext(PATH + "/toolbox.xml"); - assertThat(context.getToolbox().keySet()).contains("math"); - } - - @Test - public void loadsWithoutConfig() throws Exception { - ToolContext context = getToolContext(null); - assertThat(context).isNotNull(); - } - - private ToolContext getToolContext(String toolboxConfigLocation) throws Exception { - AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); - context.setServletContext(new MockServletContext()); - context.register(Config.class); - context.refresh(); - EmbeddedVelocityToolboxView view = context - .getBean(EmbeddedVelocityToolboxView.class); - view.setToolboxConfigLocation(toolboxConfigLocation); - Map model = new LinkedHashMap(); - HttpServletRequest request = new MockHttpServletRequest(); - HttpServletResponse response = new MockHttpServletResponse(); - ToolContext toolContext = (ToolContext) view.createVelocityContext(model, request, - response); - context.close(); - return toolContext; - } - - @Configuration - static class Config { - - @Bean - public EmbeddedVelocityToolboxView view() { - EmbeddedVelocityToolboxView view = new EmbeddedVelocityToolboxView(); - view.setUrl("http://example.com"); - return view; - } - - @Bean - public VelocityConfigurer velocityConfigurer() { - return new VelocityConfigurer(); - } - - } - -} diff --git a/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolverTests.java b/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolverTests.java deleted file mode 100644 index aec9b4cf45..0000000000 --- a/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/velocity/EmbeddedVelocityViewResolverTests.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2012-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.web.servlet.view.velocity; - -import org.junit.Test; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.mock.web.MockServletContext; -import org.springframework.test.util.ReflectionTestUtils; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.view.velocity.VelocityConfigurer; -import org.springframework.web.servlet.view.velocity.VelocityView; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Tests for {@link EmbeddedVelocityViewResolver}. - * - * @author Phillip Webb - */ -@SuppressWarnings("deprecation") -public class EmbeddedVelocityViewResolverTests { - - @Test - public void standardViewWithoutToolboxConfig() throws Exception { - ApplicationContext context = loadContext(WithoutToolboxConfig.class); - EmbeddedVelocityViewResolver resolver = context - .getBean(EmbeddedVelocityViewResolver.class); - Object viewClass = ReflectionTestUtils.getField(resolver, "viewClass"); - assertThat(viewClass).isEqualTo(VelocityView.class); - } - - @Test - public void embeddedViewWithToolboxConfig() throws Exception { - ApplicationContext context = loadContext(WithToolboxConfig.class); - EmbeddedVelocityViewResolver resolver = context - .getBean(EmbeddedVelocityViewResolver.class); - Object viewClass = ReflectionTestUtils.getField(resolver, "viewClass"); - assertThat(viewClass).isEqualTo(EmbeddedVelocityToolboxView.class); - } - - private ApplicationContext loadContext(Class config) { - AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); - context.setServletContext(new MockServletContext()); - context.register(config); - context.refresh(); - return context; - } - - @Configuration - static class WithoutToolboxConfig { - - @Bean - public EmbeddedVelocityViewResolver resolver() { - return new EmbeddedVelocityViewResolver(); - } - - @Bean - public VelocityConfigurer velocityConfigurer() { - return new VelocityConfigurer(); - } - - } - - @Configuration - static class WithToolboxConfig { - - @Bean - public EmbeddedVelocityViewResolver resolver() { - EmbeddedVelocityViewResolver resolver = new EmbeddedVelocityViewResolver(); - resolver.setToolboxConfigLocation("/toolbox.xml"); - return resolver; - } - - @Bean - public VelocityConfigurer velocityConfigurer() { - return new VelocityConfigurer(); - } - - } - -} diff --git a/spring-boot/src/test/resources/org/springframework/boot/web/servlet/view/velocity/toolbox.xml b/spring-boot/src/test/resources/org/springframework/boot/web/servlet/view/velocity/toolbox.xml deleted file mode 100644 index 6be5e9f4d8..0000000000 --- a/spring-boot/src/test/resources/org/springframework/boot/web/servlet/view/velocity/toolbox.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - math - application - org.apache.velocity.tools.generic.MathTool - -