use of org.springframework.cache.interceptor.CacheOperationInvocationContext in project spring-framework by spring-projects.
the class JCacheAspectSupport method execute.
@SuppressWarnings("unchecked")
@Nullable
private Object execute(CacheOperationInvocationContext<?> context, CacheOperationInvoker invoker) {
CacheOperationInvoker adapter = new CacheOperationInvokerAdapter(invoker);
BasicOperation operation = context.getOperation();
if (operation instanceof CacheResultOperation) {
Assert.state(this.cacheResultInterceptor != null, "No CacheResultInterceptor");
return this.cacheResultInterceptor.invoke((CacheOperationInvocationContext<CacheResultOperation>) context, adapter);
} else if (operation instanceof CachePutOperation) {
Assert.state(this.cachePutInterceptor != null, "No CachePutInterceptor");
return this.cachePutInterceptor.invoke((CacheOperationInvocationContext<CachePutOperation>) context, adapter);
} else if (operation instanceof CacheRemoveOperation) {
Assert.state(this.cacheRemoveEntryInterceptor != null, "No CacheRemoveEntryInterceptor");
return this.cacheRemoveEntryInterceptor.invoke((CacheOperationInvocationContext<CacheRemoveOperation>) context, adapter);
} else if (operation instanceof CacheRemoveAllOperation) {
Assert.state(this.cacheRemoveAllInterceptor != null, "No CacheRemoveAllInterceptor");
return this.cacheRemoveAllInterceptor.invoke((CacheOperationInvocationContext<CacheRemoveAllOperation>) context, adapter);
} else {
throw new IllegalArgumentException("Cannot handle " + operation);
}
}
use of org.springframework.cache.interceptor.CacheOperationInvocationContext 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