Properly guard cache statistics providers

Previously, a `NoClassDefFoundError` could be thrown if EhCache or Guava
is on the classpath without `spring-context-support` as the respective
cache statistics provider both needs the implementation and the spring
abstraction implementation.

The `@ConditionalOnClass` definition has been updated to properly guard
those beans.

Closes gh-3960
pull/4069/head
Stephane Nicoll 9 years ago
parent 0d1729cb65
commit 623fcfeff1

@ -36,6 +36,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
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;
@ -71,7 +73,7 @@ public class CacheStatisticsAutoConfiguration {
}
@Configuration
@ConditionalOnClass(Ehcache.class)
@ConditionalOnClass({ EhCacheCache.class, Ehcache.class })
static class EhCacheCacheStatisticsProviderConfiguration {
@Bean
@ -103,7 +105,7 @@ public class CacheStatisticsAutoConfiguration {
}
@Configuration
@ConditionalOnClass(com.google.common.cache.Cache.class)
@ConditionalOnClass({ com.google.common.cache.Cache.class, GuavaCache.class })
static class GuavaCacheStatisticsConfiguration {
@Bean

Loading…
Cancel
Save