use of org.springframework.cache.ehcache.EhCacheCache in project mica2 by obiba.
the class DatasetCacheResolver method resolveCaches.
@Override
public synchronized Collection<? extends Cache> resolveCaches(CacheOperationInvocationContext<?> cacheOperationInvocationContext) {
Collection<Cache> res = Lists.newArrayList();
Optional<Object> dataset = Arrays.stream(cacheOperationInvocationContext.getArgs()).filter(o -> o instanceof Dataset).findFirst();
if (dataset.isPresent()) {
String cacheName = "dataset-" + ((Dataset) dataset.get()).getId();
Cache datasetCache = springCacheManager.getCache(cacheName);
if (datasetCache == null) {
CacheConfiguration conf = cacheManager.getEhcache("dataset-variables").getCacheConfiguration().clone();
conf.setName(cacheName);
cacheManager.addCache(new net.sf.ehcache.Cache(conf));
net.sf.ehcache.Cache cache = cacheManager.getCache(cacheName);
cacheManager.replaceCacheWithDecoratedCache(cache, InstrumentedEhcache.instrument(metricRegistry, cache));
datasetCache = new EhCacheCache(cacheManager.getEhcache(cacheName));
}
res.add(datasetCache);
}
return res;
}
Aggregations