diff --git a/spring-boot-actuator/pom.xml b/spring-boot-actuator/pom.xml index 28ed726f721..6b2ca3317e6 100644 --- a/spring-boot-actuator/pom.xml +++ b/spring-boot-actuator/pom.xml @@ -71,11 +71,6 @@ caffeine true - - com.google.guava - guava - true - com.hazelcast hazelcast diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfiguration.java index 99ee83f9eeb..f1055d2f4c0 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfiguration.java @@ -31,7 +31,6 @@ import org.springframework.boot.actuate.cache.CaffeineCacheStatisticsProvider; import org.springframework.boot.actuate.cache.ConcurrentMapCacheStatisticsProvider; import org.springframework.boot.actuate.cache.DefaultCacheStatistics; import org.springframework.boot.actuate.cache.EhCacheStatisticsProvider; -import org.springframework.boot.actuate.cache.GuavaCacheStatisticsProvider; import org.springframework.boot.actuate.cache.HazelcastCacheStatisticsProvider; import org.springframework.boot.actuate.cache.InfinispanCacheStatisticsProvider; import org.springframework.boot.actuate.cache.JCacheCacheStatisticsProvider; @@ -45,7 +44,6 @@ import org.springframework.cache.CacheManager; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.cache.concurrent.ConcurrentMapCache; import org.springframework.cache.ehcache.EhCacheCache; -import org.springframework.cache.guava.GuavaCache; import org.springframework.cache.jcache.JCacheCache; import org.springframework.cache.support.NoOpCacheManager; import org.springframework.context.annotation.Bean; @@ -119,17 +117,6 @@ public class CacheStatisticsAutoConfiguration { } - @Configuration - @ConditionalOnClass({ com.google.common.cache.Cache.class, GuavaCache.class }) - static class GuavaCacheStatisticsConfiguration { - - @Bean - public GuavaCacheStatisticsProvider guavaCacheStatisticsProvider() { - return new GuavaCacheStatisticsProvider(); - } - - } - @Configuration @ConditionalOnClass(ConcurrentMapCache.class) static class ConcurrentMapCacheStatisticsConfiguration { diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cache/GuavaCacheStatisticsProvider.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cache/GuavaCacheStatisticsProvider.java deleted file mode 100644 index 45bc43d79f1..00000000000 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cache/GuavaCacheStatisticsProvider.java +++ /dev/null @@ -1,47 +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 org.springframework.boot.actuate.cache; - -import com.google.common.cache.CacheStats; - -import org.springframework.cache.CacheManager; -import org.springframework.cache.guava.GuavaCache; - -/** - * {@link CacheStatisticsProvider} implementation for Guava. - * - * @author Stephane Nicoll - * @since 1.3.0 - * @deprecated as of 1.5 following the removal of Guava support in Spring Framework 5 - */ -@Deprecated -public class GuavaCacheStatisticsProvider implements CacheStatisticsProvider { - - @Override - public CacheStatistics getCacheStatistics(CacheManager cacheManager, - GuavaCache cache) { - DefaultCacheStatistics statistics = new DefaultCacheStatistics(); - statistics.setSize(cache.getNativeCache().size()); - CacheStats guavaStats = cache.getNativeCache().stats(); - if (guavaStats.requestCount() > 0) { - statistics.setHitRatio(guavaStats.hitRate()); - statistics.setMissRatio(guavaStats.missRate()); - } - return statistics; - } - -} diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/LogFileMvcEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/LogFileMvcEndpoint.java index b25a55f5521..f219cb01cdb 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/LogFileMvcEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/mvc/LogFileMvcEndpoint.java @@ -126,7 +126,7 @@ public class LogFileMvcEndpoint extends AbstractMvcEndpoint { } @Override - protected MediaType getMediaType(Resource resource) { + protected MediaType getMediaType(HttpServletRequest request, Resource resource) { return MediaType.TEXT_PLAIN; } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfigurationTests.java index 06838001fa2..eb4e1f4ed28 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/CacheStatisticsAutoConfigurationTests.java @@ -24,7 +24,6 @@ import javax.cache.Caching; import javax.cache.configuration.MutableConfiguration; import com.github.benmanes.caffeine.cache.Caffeine; -import com.google.common.cache.CacheBuilder; import com.hazelcast.cache.HazelcastCachingProvider; import com.hazelcast.config.Config; import com.hazelcast.config.XmlConfigBuilder; @@ -45,7 +44,6 @@ import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.cache.concurrent.ConcurrentMapCacheManager; import org.springframework.cache.ehcache.EhCacheCacheManager; import org.springframework.cache.ehcache.EhCacheManagerUtils; -import org.springframework.cache.guava.GuavaCacheManager; import org.springframework.cache.jcache.JCacheCacheManager; import org.springframework.cache.support.NoOpCacheManager; import org.springframework.context.annotation.AnnotationConfigApplicationContext; @@ -110,14 +108,6 @@ public class CacheStatisticsAutoConfigurationTests { doTestCoreStatistics(provider, true); } - @Test - public void basicGuavaCacheStatistics() { - load(GuavaConfig.class); - CacheStatisticsProvider provider = this.context - .getBean("guavaCacheStatisticsProvider", CacheStatisticsProvider.class); - doTestCoreStatistics(provider, true); - } - @Test public void baseCaffeineCacheStatistics() { load(CaffeineCacheConfig.class); @@ -291,19 +281,6 @@ public class CacheStatisticsAutoConfigurationTests { } - @Configuration - static class GuavaConfig { - - @Bean - public GuavaCacheManager cacheManager() throws IOException { - GuavaCacheManager cacheManager = new GuavaCacheManager(); - cacheManager.setCacheBuilder(CacheBuilder.newBuilder().recordStats()); - cacheManager.setCacheNames(Arrays.asList("books", "speakers")); - return cacheManager; - } - - } - @Configuration static class ConcurrentMapConfig { diff --git a/spring-boot-autoconfigure/pom.xml b/spring-boot-autoconfigure/pom.xml index 9f6e04e527a..ef31f41aa10 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/cache/CacheConfigurations.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java index 226959064eb..c9dc7b85e17 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java @@ -42,7 +42,6 @@ final class CacheConfigurations { mappings.put(CacheType.COUCHBASE, CouchbaseCacheConfiguration.class); mappings.put(CacheType.REDIS, RedisCacheConfiguration.class); mappings.put(CacheType.CAFFEINE, CaffeineCacheConfiguration.class); - mappings.put(CacheType.GUAVA, GuavaCacheConfiguration.class); mappings.put(CacheType.SIMPLE, SimpleCacheConfiguration.class); mappings.put(CacheType.NONE, NoOpCacheConfiguration.class); MAPPINGS = Collections.unmodifiableMap(mappings); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java index 347f42db4c0..22c4731c147 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheProperties.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.List; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.context.properties.DeprecatedConfigurationProperty; import org.springframework.core.io.Resource; import org.springframework.util.Assert; @@ -57,8 +56,6 @@ public class CacheProperties { private final JCache jcache = new JCache(); - private final Guava guava = new Guava(); - public CacheType getType() { return this.type; } @@ -99,10 +96,6 @@ public class CacheProperties { return this.jcache; } - public Guava getGuava() { - return this.guava; - } - /** * Resolve the config location if set. * @param config the config resource @@ -256,30 +249,4 @@ public class CacheProperties { } - /** - * Guava specific cache properties. - */ - public static class Guava { - - /** - * The spec to use to create caches. Check CacheBuilderSpec for more details on - * the spec format. - */ - private String spec; - - @Deprecated - @DeprecatedConfigurationProperty( - reason = "Caffeine will supersede the Guava support in Spring Boot 2.0", - replacement = "spring.cache.caffeine.spec") - public String getSpec() { - return this.spec; - } - - @Deprecated - public void setSpec(String spec) { - this.spec = spec; - } - - } - } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java index b5cfe8a254a..6d29877e678 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheType.java @@ -66,12 +66,6 @@ public enum CacheType { */ CAFFEINE, - /** - * Guava backed caching. - */ - @Deprecated - GUAVA, - /** * Simple in-memory caching. */ diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/GuavaCacheConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/GuavaCacheConfiguration.java deleted file mode 100644 index 05fefa6be79..00000000000 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/GuavaCacheConfiguration.java +++ /dev/null @@ -1,102 +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.cache; - -import java.util.List; - -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheBuilderSpec; -import com.google.common.cache.CacheLoader; - -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.cache.CacheManager; -import org.springframework.cache.guava.GuavaCacheManager; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -/** - * Guava cache configuration. - * - * @author Stephane Nicoll - * @since 1.3.0 - */ -@Configuration -@ConditionalOnClass({ CacheBuilder.class, GuavaCacheManager.class }) -@ConditionalOnMissingBean(CacheManager.class) -@Conditional(CacheCondition.class) -class GuavaCacheConfiguration { - - private final CacheProperties cacheProperties; - - private final CacheManagerCustomizers customizers; - - private final CacheBuilder cacheBuilder; - - private final CacheBuilderSpec cacheBuilderSpec; - - private final CacheLoader cacheLoader; - - GuavaCacheConfiguration(CacheProperties cacheProperties, - CacheManagerCustomizers customizers, - ObjectProvider> cacheBuilderProvider, - ObjectProvider cacheBuilderSpecProvider, - ObjectProvider> cacheLoaderProvider) { - this.cacheProperties = cacheProperties; - this.customizers = customizers; - this.cacheBuilder = cacheBuilderProvider.getIfAvailable(); - this.cacheBuilderSpec = cacheBuilderSpecProvider.getIfAvailable(); - this.cacheLoader = cacheLoaderProvider.getIfAvailable(); - } - - @Bean - public GuavaCacheManager cacheManager() { - GuavaCacheManager cacheManager = createCacheManager(); - List cacheNames = this.cacheProperties.getCacheNames(); - if (!CollectionUtils.isEmpty(cacheNames)) { - cacheManager.setCacheNames(cacheNames); - } - return this.customizers.customize(cacheManager); - } - - private GuavaCacheManager createCacheManager() { - GuavaCacheManager cacheManager = new GuavaCacheManager(); - setCacheBuilder(cacheManager); - if (this.cacheLoader != null) { - cacheManager.setCacheLoader(this.cacheLoader); - } - return cacheManager; - } - - private void setCacheBuilder(GuavaCacheManager cacheManager) { - String specification = this.cacheProperties.getGuava().getSpec(); - if (StringUtils.hasText(specification)) { - cacheManager.setCacheSpecification(specification); - } - else if (this.cacheBuilderSpec != null) { - cacheManager.setCacheBuilderSpec(this.cacheBuilderSpec); - } - else if (this.cacheBuilder != null) { - cacheManager.setCacheBuilder(this.cacheBuilder); - } - } - -} 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 6e3497134a6..00000000000 --- 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 c01878421dc..00000000000 --- 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 1dd17912137..00000000000 --- 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 571f4799d4f..00000000000 --- 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 62f5a8b2df2..f71ba137d07 100644 --- a/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories @@ -85,7 +85,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,\ @@ -114,5 +113,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 2642cc0cd11..80e8cd07bb5 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.groovy.template.GroovyTemplateAutoConfiguration; 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; @@ -92,12 +92,12 @@ public class EnableAutoConfigurationImportSelectorTests { @Test public void classNamesExclusionsAreApplied() { configureExclusions(new String[0], - new String[] { VelocityAutoConfiguration.class.getName() }, + new String[] { ThymeleafAutoConfiguration.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(ThymeleafAutoConfiguration.class.getName()); } @Test @@ -114,12 +114,12 @@ public class EnableAutoConfigurationImportSelectorTests { public void severalPropertyExclusionsAreApplied() { configureExclusions(new String[0], new String[0], new String[] { FreeMarkerAutoConfiguration.class.getName(), - VelocityAutoConfiguration.class.getName() }); + ThymeleafAutoConfiguration.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()); + ThymeleafAutoConfiguration.class.getName()); } @Test @@ -128,24 +128,24 @@ public class EnableAutoConfigurationImportSelectorTests { this.environment.setProperty("spring.autoconfigure.exclude[0]", FreeMarkerAutoConfiguration.class.getName()); this.environment.setProperty("spring.autoconfigure.exclude[1]", - VelocityAutoConfiguration.class.getName()); + ThymeleafAutoConfiguration.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()); + ThymeleafAutoConfiguration.class.getName()); } @Test public void combinedExclusionsAreApplied() { - configureExclusions(new String[] { VelocityAutoConfiguration.class.getName() }, + configureExclusions(new String[] { GroovyTemplateAutoConfiguration.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(), + GroovyTemplateAutoConfiguration.class.getName(), ThymeleafAutoConfiguration.class.getName()); } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java index 959b2a17b32..63b239a7a0c 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java @@ -36,7 +36,6 @@ import com.couchbase.client.spring.cache.CouchbaseCache; import com.couchbase.client.spring.cache.CouchbaseCacheManager; import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.CaffeineSpec; -import com.google.common.cache.CacheBuilder; import com.hazelcast.cache.HazelcastCachingProvider; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.spring.cache.HazelcastCacheManager; @@ -66,8 +65,6 @@ import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.cache.concurrent.ConcurrentMapCache; import org.springframework.cache.concurrent.ConcurrentMapCacheManager; import org.springframework.cache.ehcache.EhCacheCacheManager; -import org.springframework.cache.guava.GuavaCache; -import org.springframework.cache.guava.GuavaCacheManager; import org.springframework.cache.interceptor.CacheOperationInvocationContext; import org.springframework.cache.interceptor.CacheResolver; import org.springframework.cache.jcache.JCacheCacheManager; @@ -632,46 +629,6 @@ public class CacheAutoConfigurationTests { assertThat(cacheManager.getCacheNames()).containsOnly("foo", "custom1"); } - @Test - public void guavaCacheExplicitWithCaches() { - load(DefaultCacheConfiguration.class, "spring.cache.type=guava", - "spring.cache.cacheNames=foo"); - GuavaCacheManager cacheManager = validateCacheManager(GuavaCacheManager.class); - Cache foo = cacheManager.getCache("foo"); - foo.get("1"); - // See next tests: no spec given so stats should be disabled - assertThat(((GuavaCache) foo).getNativeCache().stats().missCount()).isEqualTo(0L); - } - - @Test - public void guavaCacheWithCustomizers() { - testCustomizers(DefaultCacheAndCustomizersConfiguration.class, "guava", - "allCacheManagerCustomizer", "guavaCacheManagerCustomizer"); - } - - @Test - public void guavaCacheExplicitWithSpec() { - load(DefaultCacheConfiguration.class, "spring.cache.type=guava", - "spring.cache.guava.spec=recordStats", "spring.cache.cacheNames[0]=foo", - "spring.cache.cacheNames[1]=bar"); - validateGuavaCacheWithStats(); - } - - @Test - public void guavaCacheExplicitWithCacheBuilder() { - load(GuavaCacheBuilderConfiguration.class, "spring.cache.type=guava", - "spring.cache.cacheNames[0]=foo", "spring.cache.cacheNames[1]=bar"); - validateGuavaCacheWithStats(); - } - - private void validateGuavaCacheWithStats() { - GuavaCacheManager cacheManager = validateCacheManager(GuavaCacheManager.class); - assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); - Cache foo = cacheManager.getCache("foo"); - foo.get("1"); - assertThat(((GuavaCache) foo).getNativeCache().stats().missCount()).isEqualTo(1L); - } - @Test public void caffeineCacheWithExplicitCaches() { load(DefaultCacheConfiguration.class, "spring.cache.type=caffeine", @@ -995,17 +952,6 @@ public class CacheAutoConfigurationTests { } - @Configuration - @EnableCaching - static class GuavaCacheBuilderConfiguration { - - @Bean - CacheBuilder cacheBuilder() { - return CacheBuilder.newBuilder().recordStats(); - } - - } - @Configuration @EnableCaching static class CaffeineCacheBuilderConfiguration { @@ -1079,12 +1025,6 @@ public class CacheAutoConfigurationTests { }; } - @Bean - public CacheManagerCustomizer guavaCacheManagerCustomizer() { - return new CacheManagerTestCustomizer() { - }; - } - @Bean public CacheManagerCustomizer caffeineCacheManagerCustomizer() { return new CacheManagerTestCustomizer() { 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 c5ddf074b82..00000000000 --- 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 870729f9156..00000000000 --- 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-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java index 59ed94d5799..057ea8eab1e 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/HttpMessageConvertersTests.java @@ -29,7 +29,9 @@ import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.ResourceHttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.cbor.MappingJackson2CborHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.http.converter.smile.MappingJackson2SmileHttpMessageConverter; import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter; import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter; import org.springframework.http.converter.xml.SourceHttpMessageConverter; @@ -61,6 +63,8 @@ public class HttpMessageConvertersTests { SourceHttpMessageConverter.class, AllEncompassingFormHttpMessageConverter.class, MappingJackson2HttpMessageConverter.class, + MappingJackson2SmileHttpMessageConverter.class, + MappingJackson2CborHttpMessageConverter.class, MappingJackson2XmlHttpMessageConverter.class); } @@ -131,7 +135,9 @@ public class HttpMessageConvertersTests { StringHttpMessageConverter.class, ResourceHttpMessageConverter.class, SourceHttpMessageConverter.class, AllEncompassingFormHttpMessageConverter.class, - MappingJackson2HttpMessageConverter.class); + MappingJackson2HttpMessageConverter.class, + MappingJackson2SmileHttpMessageConverter.class, + MappingJackson2CborHttpMessageConverter.class); } @Test @@ -158,7 +164,8 @@ public class HttpMessageConvertersTests { assertThat(converterClasses).containsExactly(ByteArrayHttpMessageConverter.class, StringHttpMessageConverter.class, ResourceHttpMessageConverter.class, SourceHttpMessageConverter.class, - MappingJackson2HttpMessageConverter.class); + MappingJackson2HttpMessageConverter.class, + MappingJackson2SmileHttpMessageConverter.class); } @SuppressWarnings("unchecked") diff --git a/spring-boot-dependencies/pom.xml b/spring-boot-dependencies/pom.xml index e2cb40137e2..2bc8015f4de 100644 --- a/spring-boot-dependencies/pom.xml +++ b/spring-boot-dependencies/pom.xml @@ -144,18 +144,18 @@ 1.17 5.5.3 1.0-groovy-2.4 - 4.3.3.RELEASE + 5.0.0.BUILD-SNAPSHOT 1.6.2.RELEASE 1.2.3.RELEASE 3.0.7.RELEASE Hopper-SR3 - 0.20.0.RELEASE + 0.21.0.BUILD-SNAPSHOT 4.3.2.RELEASE 1.1.3.RELEASE 1.2.6.RELEASE 1.1.5.RELEASE 1.2.0.RELEASE - 1.1.2.RELEASE + 1.2.0.BUILD-SNAPSHOT 1.1.4.RELEASE 4.1.3.RELEASE 1.0.5.RELEASE @@ -177,8 +177,6 @@ 2.1.0.RELEASE 8.5.5 1.3.25.Final - 1.7 - 2.0 9f96c74 0.32 1.6.3 @@ -499,11 +497,6 @@ spring-boot-starter-validation 2.0.0.BUILD-SNAPSHOT - - org.springframework.boot - spring-boot-starter-velocity - 2.0.0.BUILD-SNAPSHOT - org.springframework.boot spring-boot-starter-web @@ -1353,22 +1346,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-deployment-tests/spring-boot-deployment-test-tomee/pom.xml b/spring-boot-deployment-tests/spring-boot-deployment-test-tomee/pom.xml index adde59e9807..5c506e88f67 100644 --- a/spring-boot-deployment-tests/spring-boot-deployment-test-tomee/pom.xml +++ b/spring-boot-deployment-tests/spring-boot-deployment-test-tomee/pom.xml @@ -17,7 +17,7 @@ ${basedir}/../.. - 1.7.4 + 7.0.1 tomee1x https://www.apache.org/dist/tomee/tomee-${tomee.version}/apache-tomee-${tomee.version}-webprofile.zip 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 c3814a03fe6..8f31f4f8749 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 bc2461ed8a3..8c822ff9df6 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 2f50b36b240..5ed6cac12e8 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -71,7 +71,6 @@ content into your application; rather pick only the properties that you need. spring.cache.caffeine.spec= # The spec to use to create caches. Check CaffeineSpec for more details on the spec format. spring.cache.couchbase.expiration=0 # Entry expiration in milliseconds. By default the entries never expire. spring.cache.ehcache.config= # The location of the configuration file to use to initialize EhCache. - spring.cache.guava.spec= # The spec to use to create caches. Check CacheBuilderSpec for more details on the spec format. spring.cache.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast. spring.cache.infinispan.config= # The location of the configuration file to use to initialize Infinispan. spring.cache.jcache.config= # The location of the configuration file to use to initialize the cache manager. @@ -406,28 +405,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 844a75abba7..3791766eb3e 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}/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/production-ready-features.adoc b/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc index 19c05edeea1..f569015b9b5 100644 --- a/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/production-ready-features.adoc @@ -1067,7 +1067,7 @@ is prefixed by the name of the `CacheManager` bean. It is possible to override part or all of those defaults by registering a bean with a customized version of `CachePublicMetrics`. By default, Spring Boot provides cache -statistics for EhCache, Hazelcast, Infinispan, JCache and Guava. You can add additional +statistics for EhCache, Hazelcast, Infinispan, JCache and Caffeine. You can add additional `CacheStatisticsProvider` beans if your favorite caching library isn't supported out of the box. See `CacheStatisticsAutoConfiguration` for examples. 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 a1b72a3ef55..b05288478cc 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -1774,7 +1774,7 @@ 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 +`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 @@ -1821,7 +1821,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 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 +1829,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 @@ -3799,7 +3798,6 @@ providers (in this order): * <> * <> * <> -* <> (deprecated) * <> TIP: It is also possible to _force_ the cache provider to use via the `spring.cache.type` @@ -3992,10 +3990,10 @@ recommend to keep this setting enabled if you create your own `RedisCacheManager [[boot-features-caching-provider-caffeine]] ==== Caffeine -Caffeine is a Java 8 rewrite of Guava’s cache and will supersede the Guava support in -Spring Boot 2.0. If Caffeine is present, a `CaffeineCacheManager` is auto-configured. -Caches can be created on startup using the `spring.cache.cache-names` property and -customized by one of the following (in this order): +Caffeine is a Java 8 rewrite of Guava’s cache that supersede the Guava support. If +Caffeine is present, a `CaffeineCacheManager` is auto-configured. Caches can be created +on startup using the `spring.cache.cache-names` property and customized by one of the +following (in this order): 1. A cache spec defined by `spring.cache.caffeine.spec` 2. A `com.github.benmanes.caffeine.cache.CaffeineSpec` bean is defined @@ -4018,33 +4016,6 @@ auto-configuration. -[[boot-features-caching-provider-guava]] -==== Guava (deprecated) -If Guava is present, a `GuavaCacheManager` is auto-configured. Caches can be created -on startup using the `spring.cache.cache-names` property and customized by one of the -following (in this order): - -1. A cache spec defined by `spring.cache.guava.spec` -2. A `com.google.common.cache.CacheBuilderSpec` bean is defined -3. A `com.google.common.cache.CacheBuilder` bean is defined - -For instance, the following configuration creates a `foo` and `bar` caches with a maximum -size of 500 and a _time to live_ of 10 minutes - -[source,properties,indent=0] ----- - spring.cache.cache-names=foo,bar - spring.cache.guava.spec=maximumSize=500,expireAfterAccess=600s ----- - -Besides, if a `com.google.common.cache.CacheLoader` bean is defined, it is automatically -associated to the `GuavaCacheManager`. Since the `CacheLoader` is going to be associated -to _all_ caches managed by the cache manager, it must be defined as -`CacheLoader`. Any other generic type will be ignored by the -auto-configuration. - - - [[boot-features-caching-provider-simple]] ==== Simple If none of these options worked out, a simple implementation using `ConcurrentHashMap` diff --git a/spring-boot-parent/pom.xml b/spring-boot-parent/pom.xml index d4e401810f8..f276a74413b 100644 --- a/spring-boot-parent/pom.xml +++ b/spring-boot-parent/pom.xml @@ -19,7 +19,7 @@ .. false - 1.6 + 1.8 1.0.2.v20150114 UTF-8 UTF-8 @@ -47,11 +47,6 @@ log4j 1.2.17 - - com.google.guava - guava - 18.0 - com.squareup.okhttp okhttp diff --git a/spring-boot-samples/README.adoc b/spring-boot-samples/README.adoc index f5aeac729fd..58822583f01 100644 --- a/spring-boot-samples/README.adoc +++ b/spring-boot-samples/README.adoc @@ -222,9 +222,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 @@ -261,9 +258,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 954b53b9efc..3273348d028 100644 --- a/spring-boot-samples/pom.xml +++ b/spring-boot-samples/pom.xml @@ -93,7 +93,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 @@ -107,7 +106,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-ant/pom.xml b/spring-boot-samples/spring-boot-sample-ant/pom.xml index 82f7fffe949..639359e2c01 100644 --- a/spring-boot-samples/spring-boot-sample-ant/pom.xml +++ b/spring-boot-samples/spring-boot-sample-ant/pom.xml @@ -83,7 +83,7 @@ org.springframework.boot spring-boot-antlib - 1.4.0.BUILD-SNAPSHOT + 2.0.0.BUILD-SNAPSHOT diff --git a/spring-boot-samples/spring-boot-sample-cache/README.adoc b/spring-boot-samples/spring-boot-sample-cache/README.adoc index 7bc450fb397..0adc8653c58 100644 --- a/spring-boot-samples/spring-boot-sample-cache/README.adoc +++ b/spring-boot-samples/spring-boot-sample-cache/README.adoc @@ -10,7 +10,6 @@ abstraction is supported by many caching libraries, including: * `Couchbase` * `Redis` * `Caffeine` -* `Guava` * Simple provider based on `ConcurrentHashMap` * Generic provider based on `org.springframework.Cache` bean definition(s) @@ -99,11 +98,3 @@ a redis instance with the default settings is expected on your local box). Simply add the `com.github.ben-manes.caffeine:caffeine` dependency to enable support for Caffeine. You can customize how caches are created in different ways, see `application.properties` for an example and the documentation for more details. - - - -=== Guava -Spring Boot does not provide any dependency management for _Guava_ so you'll have to add -the `com.google.guava:guava` dependency with a version. You can customize how caches are -created in different ways, see `application.properties` for an example and the -documentation for more details. diff --git a/spring-boot-samples/spring-boot-sample-cache/pom.xml b/spring-boot-samples/spring-boot-sample-cache/pom.xml index 79469341228..c9981bb7176 100644 --- a/spring-boot-samples/spring-boot-sample-cache/pom.xml +++ b/spring-boot-samples/spring-boot-sample-cache/pom.xml @@ -96,13 +96,6 @@ caffeine --> - org.springframework.boot spring-boot-starter-test diff --git a/spring-boot-samples/spring-boot-sample-cache/src/main/resources/application.properties b/spring-boot-samples/spring-boot-sample-cache/src/main/resources/application.properties index d913ffc2cc8..fe24f45857b 100644 --- a/spring-boot-samples/spring-boot-sample-cache/src/main/resources/application.properties +++ b/spring-boot-samples/spring-boot-sample-cache/src/main/resources/application.properties @@ -14,9 +14,3 @@ # Caffeine configuration # #spring.cache.caffeine.spec=maximumSize=200,expireAfterAccess=600s - - -# -# Guava configuration -# -#spring.cache.guava.spec=maximumSize=200,expireAfterAccess=600s 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 963ec29c762..00000000000 --- 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 - 2.0.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 4c8e0080106..00000000000 --- 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 e504f79eb9c..00000000000 --- 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 7560db959d0..00000000000 --- 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 3f6d109e2ab..00000000000 --- 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 7d2ee6a4dcf..00000000000 --- 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 - 2.0.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 ae63ebcad03..00000000000 --- 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 417cccef3ac..00000000000 --- 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 11927c09665..00000000000 --- 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 ace42110120..00000000000 --- 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 85f409d0f0c..00000000000 --- 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 c7c76f243ba..00000000000 --- 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 ef798b65062..9a74150cad8 100644 --- a/spring-boot-starters/pom.xml +++ b/spring-boot-starters/pom.xml @@ -67,7 +67,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 a3686de0760..00000000000 --- 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 - 2.0.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 4414a2eb58a..217f9d52f77 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/bind/RelaxedPropertyResolver.java b/spring-boot/src/main/java/org/springframework/boot/bind/RelaxedPropertyResolver.java index 80ff09f91ee..bf8f7da890c 100644 --- a/spring-boot/src/main/java/org/springframework/boot/bind/RelaxedPropertyResolver.java +++ b/spring-boot/src/main/java/org/springframework/boot/bind/RelaxedPropertyResolver.java @@ -86,22 +86,6 @@ public class RelaxedPropertyResolver implements PropertyResolver { return defaultValue; } - @Override - @Deprecated - public Class getPropertyAsClass(String key, Class targetType) { - RelaxedNames prefixes = new RelaxedNames(this.prefix); - RelaxedNames keys = new RelaxedNames(key); - for (String prefix : prefixes) { - for (String relaxedKey : keys) { - if (this.resolver.containsProperty(prefix + relaxedKey)) { - return this.resolver.getPropertyAsClass(prefix + relaxedKey, - targetType); - } - } - } - return null; - } - @Override public boolean containsProperty(String key) { RelaxedNames prefixes = new RelaxedNames(this.prefix); diff --git a/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java b/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java index 436f3fc60eb..04ea2b95b5c 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContext.java @@ -362,7 +362,6 @@ public class EmbeddedWebApplicationContext extends GenericWebApplicationContext Set scopes = new LinkedHashSet(); scopes.add(WebApplicationContext.SCOPE_REQUEST); scopes.add(WebApplicationContext.SCOPE_SESSION); - scopes.add(WebApplicationContext.SCOPE_GLOBAL_SESSION); SCOPES = Collections.unmodifiableSet(scopes); } 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 d667e830120..00000000000 --- 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 b827cbedd7c..00000000000 --- 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 751e75957c4..00000000000 --- 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/bind/RelaxedPropertyResolverTests.java b/spring-boot/src/test/java/org/springframework/boot/bind/RelaxedPropertyResolverTests.java index 5b2079ac31f..353a5f54a16 100644 --- a/spring-boot/src/test/java/org/springframework/boot/bind/RelaxedPropertyResolverTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/bind/RelaxedPropertyResolverTests.java @@ -118,14 +118,6 @@ public class RelaxedPropertyResolverTests { .isEqualTo(345); } - @Test - @Deprecated - public void getPropertyAsClass() throws Exception { - assertThat(this.resolver.getPropertyAsClass("my-class", String.class)) - .isEqualTo(String.class); - assertThat(this.resolver.getPropertyAsClass("my-missing", String.class)).isNull(); - } - @Test public void containsProperty() throws Exception { assertThat(this.resolver.containsProperty("my-string")).isTrue(); diff --git a/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java b/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java index f93eabf0dfc..f380369c282 100644 --- a/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/context/embedded/EmbeddedWebApplicationContextTests.java @@ -31,8 +31,6 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; -import org.apache.struts.mock.MockHttpServletRequest; -import org.apache.struts.mock.MockHttpServletResponse; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -63,6 +61,8 @@ import org.springframework.core.annotation.Order; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockFilterConfig; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.web.context.ServletContextAware; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.request.SessionScope; @@ -471,15 +471,12 @@ public class EmbeddedWebApplicationContextTests { ConfigurableListableBeanFactory factory = this.context.getBeanFactory(); factory.registerScope(WebApplicationContext.SCOPE_REQUEST, scope); factory.registerScope(WebApplicationContext.SCOPE_SESSION, scope); - factory.registerScope(WebApplicationContext.SCOPE_GLOBAL_SESSION, scope); addEmbeddedServletContainerFactoryBean(); this.context.refresh(); assertThat(factory.getRegisteredScope(WebApplicationContext.SCOPE_REQUEST)) .isSameAs(scope); assertThat(factory.getRegisteredScope(WebApplicationContext.SCOPE_SESSION)) .isSameAs(scope); - assertThat(factory.getRegisteredScope(WebApplicationContext.SCOPE_GLOBAL_SESSION)) - .isSameAs(scope); } private void addEmbeddedServletContainerFactoryBean() { 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 5cfc50196e2..00000000000 --- 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.struts.mock.MockHttpServletRequest; -import org.apache.struts.mock.MockHttpServletResponse; -import org.apache.struts.mock.MockServletContext; -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.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 7a8efa785bc..00000000000 --- 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.apache.struts.mock.MockServletContext; -import org.junit.Test; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -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 6be5e9f4d89..00000000000 --- 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 - -