Restore proper customization of JCache CacheManager

Work in 1b3efd4 actually introduced a regression: if a CacheManager is
created via a custom configuration file, it is no longer post-processed.

This commit makes sure to also customize a CacheManager that was
created that way.

See gh-2848
This commit is contained in:
Stephane Nicoll 2015-05-13 18:18:15 +02:00
parent c0e9ed1e34
commit b466229231
1 changed files with 13 additions and 9 deletions

View File

@ -77,15 +77,7 @@ class JCacheCacheConfiguration {
@Bean
@ConditionalOnMissingBean
public CacheManager jCacheCacheManager() throws IOException {
CachingProvider cachingProvider = getCachingProvider(this.cacheProperties
.getJcache().getProvider());
Resource configLocation = this.cacheProperties.resolveConfigLocation();
if (configLocation != null) {
return cachingProvider.getCacheManager(configLocation.getURI(),
cachingProvider.getDefaultClassLoader(),
createCacheManagerProperties(configLocation));
}
CacheManager jCacheCacheManager = cachingProvider.getCacheManager();
CacheManager jCacheCacheManager = createCacheManager();
List<String> cacheNames = this.cacheProperties.getCacheNames();
if (!CollectionUtils.isEmpty(cacheNames)) {
for (String cacheName : cacheNames) {
@ -96,6 +88,18 @@ class JCacheCacheConfiguration {
return jCacheCacheManager;
}
private CacheManager createCacheManager() throws IOException {
CachingProvider cachingProvider = getCachingProvider(this.cacheProperties
.getJcache().getProvider());
Resource configLocation = this.cacheProperties.resolveConfigLocation();
if (configLocation != null) {
return cachingProvider.getCacheManager(configLocation.getURI(),
cachingProvider.getDefaultClassLoader(),
createCacheManagerProperties(configLocation));
}
return cachingProvider.getCacheManager();
}
private CachingProvider getCachingProvider(String cachingProviderFqn) {
if (StringUtils.hasText(cachingProviderFqn)) {
return Caching.getCachingProvider(cachingProviderFqn);