private void removeValue(CacheOperationInvocationContext<CacheRemoveOperation> context) { Object key = generateKey(context); Cache cache = resolveCache(context); if (logger.isTraceEnabled()) { logger.trace("Invalidating key [" + key + "] on cache '" + cache.getName() + "' for operation " + context.getOperation()); } doEvict(cache, key); }
@Override protected Object invoke( CacheOperationInvocationContext<CacheRemoveOperation> context, CacheOperationInvoker invoker) { CacheRemoveOperation operation = context.getOperation(); boolean earlyRemove = operation.isEarlyRemove(); if (earlyRemove) { removeValue(context); } try { Object result = invoker.invoke(); if (!earlyRemove) { removeValue(context); } return result; } catch (CacheOperationInvoker.ThrowableWrapper wrapperException) { Throwable ex = wrapperException.getOriginal(); if (!earlyRemove && operation.getExceptionTypeFilter().match(ex.getClass())) { removeValue(context); } throw wrapperException; } }
@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); } }
public void afterPropertiesSet() { getCacheOperationSource(); this.cacheResultInterceptor = new CacheResultInterceptor(getErrorHandler()); this.cachePutInterceptor = new CachePutInterceptor(getErrorHandler()); this.cacheRemoveEntryInterceptor = new CacheRemoveEntryInterceptor(getErrorHandler()); this.cacheRemoveAllInterceptor = new CacheRemoveAllInterceptor(getErrorHandler()); this.initialized = true; }
public void afterPropertiesSet() { getCacheOperationSource(); this.cacheResultInterceptor = new CacheResultInterceptor(getErrorHandler()); this.cachePutInterceptor = new CachePutInterceptor(getErrorHandler()); this.cacheRemoveEntryInterceptor = new CacheRemoveEntryInterceptor(getErrorHandler()); this.cacheRemoveAllInterceptor = new CacheRemoveAllInterceptor(getErrorHandler()); this.initialized = true; }
private void removeValue(CacheOperationInvocationContext<CacheRemoveOperation> context) { Object key = generateKey(context); Cache cache = resolveCache(context); if (logger.isTraceEnabled()) { logger.trace("Invalidating key [" + key + "] on cache '" + cache.getName() + "' for operation " + context.getOperation()); } doEvict(cache, key); }
public void afterPropertiesSet() { Assert.state(getCacheOperationSource() != null, "The 'cacheOperationSource' property is required: " + "If there are no cacheable methods, then don't use a cache aspect."); Assert.state(getErrorHandler() != null, "The 'errorHandler' property is required"); this.cacheResultInterceptor = new CacheResultInterceptor(getErrorHandler()); this.cachePutInterceptor = new CachePutInterceptor(getErrorHandler()); this.cacheRemoveEntryInterceptor = new CacheRemoveEntryInterceptor(getErrorHandler()); this.cacheRemoveAllInterceptor = new CacheRemoveAllInterceptor(getErrorHandler()); this.initialized = true; }
@Override protected Object invoke( CacheOperationInvocationContext<CacheRemoveOperation> context, CacheOperationInvoker invoker) { CacheRemoveOperation operation = context.getOperation(); boolean earlyRemove = operation.isEarlyRemove(); if (earlyRemove) { removeValue(context); } try { Object result = invoker.invoke(); if (!earlyRemove) { removeValue(context); } return result; } catch (CacheOperationInvoker.ThrowableWrapper wrapperException) { Throwable ex = wrapperException.getOriginal(); if (!earlyRemove && operation.getExceptionTypeFilter().match(ex.getClass())) { removeValue(context); } throw wrapperException; } }
@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); } }
private void removeValue(CacheOperationInvocationContext<CacheRemoveOperation> context) { Object key = generateKey(context); Cache cache = resolveCache(context); if (logger.isTraceEnabled()) { logger.trace("Invalidating key [" + key + "] on cache '" + cache.getName() + "' for operation " + context.getOperation()); } doEvict(cache, key); }
@Override protected Object invoke(CacheOperationInvocationContext<CacheRemoveOperation> context, CacheOperationInvoker invoker) { CacheRemoveOperation operation = context.getOperation(); final boolean earlyRemove = operation.isEarlyRemove(); if (earlyRemove) { removeValue(context); } try { Object result = invoker.invoke(); if (!earlyRemove) { removeValue(context); } return result; } catch (CacheOperationInvoker.ThrowableWrapper t) { Throwable ex = t.getOriginal(); if (!earlyRemove && operation.getExceptionTypeFilter().match(ex.getClass())) { removeValue(context); } throw t; } }