fixes usage of named cache configurations, see issue #943

This commit is contained in:
Sebastian Sdorra
2017-08-14 16:04:30 +02:00
parent 785e1b12a9
commit f72648f646
2 changed files with 50 additions and 7 deletions

View File

@@ -78,15 +78,22 @@ public class GuavaCacheManager implements CacheManager, org.apache.shiro.cache.C
protected GuavaCacheManager(GuavaCacheManagerConfiguration config) {
defaultConfiguration = config.getDefaultCache();
for (GuavaNamedCacheConfiguration ncc : config.getCaches()) {
logger.debug("create cache {} from configured configuration {}", ncc.getName(), ncc);
cacheMap.put(ncc.getName(), new CacheWithConfiguration(
GuavaCaches.create(defaultConfiguration, ncc.getName()),
defaultConfiguration)
for (GuavaNamedCacheConfiguration namedCacheConfiguration : config.getCaches()) {
logger.debug("create cache {} from configured configuration {}",
namedCacheConfiguration.getName(), namedCacheConfiguration
);
cacheMap.put(namedCacheConfiguration.getName(), createCacheWithConfiguration(namedCacheConfiguration));
}
}
private CacheWithConfiguration createCacheWithConfiguration(GuavaNamedCacheConfiguration namedCacheConfiguration) {
return createCacheWithConfiguration(namedCacheConfiguration, namedCacheConfiguration.getName());
}
private CacheWithConfiguration createCacheWithConfiguration(GuavaCacheConfiguration configuration, String name) {
return new CacheWithConfiguration(GuavaCaches.create(configuration, name), configuration);
}
@Override
public void close() throws IOException {
logger.info("close guava cache manager");
@@ -110,7 +117,7 @@ public class GuavaCacheManager implements CacheManager, org.apache.shiro.cache.C
"cache {} does not exists, creating a new instance from default configuration: {}",
name, defaultConfiguration
);
cache = new CacheWithConfiguration(GuavaCaches.create(defaultConfiguration, name), defaultConfiguration);
cache = createCacheWithConfiguration(defaultConfiguration, name);
cacheMap.put(name, cache);
}