Java Code Examples for org.springframework.cache.interceptor.CacheOperationInvoker#invoke()

The following examples show how to use org.springframework.cache.interceptor.CacheOperationInvoker#invoke() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: CacheRemoveEntryInterceptor.java    From lams with GNU General Public License v2.0 6 votes vote down vote up
@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;
	}
}
 
Example 2
Source File: CacheRemoveEntryInterceptor.java    From spring4-understanding with Apache License 2.0 6 votes vote down vote up
@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;
	}
}
 
Example 3
Source File: CacheRemoveAllInterceptor.java    From spring-analysis-note with MIT License 6 votes vote down vote up
@Override
protected Object invoke(
		CacheOperationInvocationContext<CacheRemoveAllOperation> context, CacheOperationInvoker invoker) {

	CacheRemoveAllOperation operation = context.getOperation();

	boolean earlyRemove = operation.isEarlyRemove();
	if (earlyRemove) {
		removeAll(context);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyRemove) {
			removeAll(context);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyRemove && operation.getExceptionTypeFilter().match(original.getClass())) {
			removeAll(context);
		}
		throw ex;
	}
}
 
Example 4
Source File: CacheRemoveEntryInterceptor.java    From java-technology-stack with MIT License 6 votes vote down vote up
@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;
	}
}
 
Example 5
Source File: CacheRemoveAllInterceptor.java    From java-technology-stack with MIT License 6 votes vote down vote up
@Override
protected Object invoke(
		CacheOperationInvocationContext<CacheRemoveAllOperation> context, CacheOperationInvoker invoker) {

	CacheRemoveAllOperation operation = context.getOperation();

	boolean earlyRemove = operation.isEarlyRemove();
	if (earlyRemove) {
		removeAll(context);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyRemove) {
			removeAll(context);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyRemove && operation.getExceptionTypeFilter().match(original.getClass())) {
			removeAll(context);
		}
		throw ex;
	}
}
 
Example 6
Source File: CacheResultInterceptor.java    From java-technology-stack with MIT License 5 votes vote down vote up
@Override
@Nullable
protected Object invoke(
		CacheOperationInvocationContext<CacheResultOperation> context, CacheOperationInvoker invoker) {

	CacheResultOperation operation = context.getOperation();
	Object cacheKey = generateKey(context);

	Cache cache = resolveCache(context);
	Cache exceptionCache = resolveExceptionCache(context);

	if (!operation.isAlwaysInvoked()) {
		Cache.ValueWrapper cachedValue = doGet(cache, cacheKey);
		if (cachedValue != null) {
			return cachedValue.get();
		}
		checkForCachedException(exceptionCache, cacheKey);
	}

	try {
		Object invocationResult = invoker.invoke();
		doPut(cache, cacheKey, invocationResult);
		return invocationResult;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		cacheException(exceptionCache, operation.getExceptionTypeFilter(), cacheKey, original);
		throw ex;
	}
}
 
Example 7
Source File: CachePutInterceptor.java    From spring4-understanding with Apache License 2.0 5 votes vote down vote up
@Override
protected Object invoke(CacheOperationInvocationContext<CachePutOperation> context,
		CacheOperationInvoker invoker) {

	CacheKeyInvocationContext<CachePut> invocationContext = createCacheKeyInvocationContext(context);
	CachePutOperation operation = context.getOperation();

	boolean earlyPut = operation.isEarlyPut();
	Object value = invocationContext.getValueParameter().getValue();

	if (earlyPut) {
		cacheValue(context, value);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyPut) {
			cacheValue(context, value);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyPut && operation.getExceptionTypeFilter().match(original.getClass())) {
			cacheValue(context, value);
		}
		throw ex;
	}
}
 
Example 8
Source File: CacheResultInterceptor.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
@Override
protected Object invoke(CacheOperationInvocationContext<CacheResultOperation> context,
		CacheOperationInvoker invoker) {

	CacheResultOperation operation = context.getOperation();
	Object cacheKey = generateKey(context);

	Cache cache = resolveCache(context);
	Cache exceptionCache = resolveExceptionCache(context);

	if (!operation.isAlwaysInvoked()) {
		Cache.ValueWrapper cachedValue = doGet(cache, cacheKey);
		if (cachedValue != null) {
			return cachedValue.get();
		}
		checkForCachedException(exceptionCache, cacheKey);
	}

	try {
		Object invocationResult = invoker.invoke();
		doPut(cache, cacheKey, invocationResult);
		return invocationResult;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		cacheException(exceptionCache, operation.getExceptionTypeFilter(), cacheKey, original);
		throw ex;
	}
}
 
Example 9
Source File: CachePutInterceptor.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
@Override
protected Object invoke(CacheOperationInvocationContext<CachePutOperation> context,
		CacheOperationInvoker invoker) {

	CacheKeyInvocationContext<CachePut> invocationContext = createCacheKeyInvocationContext(context);
	CachePutOperation operation = context.getOperation();

	boolean earlyPut = operation.isEarlyPut();
	Object value = invocationContext.getValueParameter().getValue();

	if (earlyPut) {
		cacheValue(context, value);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyPut) {
			cacheValue(context, value);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyPut && operation.getExceptionTypeFilter().match(original.getClass())) {
			cacheValue(context, value);
		}
		throw ex;
	}
}
 
Example 10
Source File: JCacheAspectSupport.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
	// Check whether aspect is enabled to cope with cases where the AJ is pulled in automatically
	if (this.initialized) {
		Class<?> targetClass = AopProxyUtils.ultimateTargetClass(target);
		JCacheOperation<?> operation = getCacheOperationSource().getCacheOperation(method, targetClass);
		if (operation != null) {
			CacheOperationInvocationContext<?> context =
					createCacheOperationInvocationContext(target, args, operation);
			return execute(context, invoker);
		}
	}

	return invoker.invoke();
}
 
Example 11
Source File: CachePutInterceptor.java    From java-technology-stack with MIT License 5 votes vote down vote up
@Override
protected Object invoke(
		CacheOperationInvocationContext<CachePutOperation> context, CacheOperationInvoker invoker) {

	CachePutOperation operation = context.getOperation();
	CacheKeyInvocationContext<CachePut> invocationContext = createCacheKeyInvocationContext(context);

	boolean earlyPut = operation.isEarlyPut();
	Object value = invocationContext.getValueParameter().getValue();
	if (earlyPut) {
		cacheValue(context, value);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyPut) {
			cacheValue(context, value);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyPut && operation.getExceptionTypeFilter().match(original.getClass())) {
			cacheValue(context, value);
		}
		throw ex;
	}
}
 
Example 12
Source File: JCacheAspectSupport.java    From spring4-understanding with Apache License 2.0 5 votes vote down vote up
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
	// Check whether aspect is enabled to cope with cases where the AJ is pulled in automatically
	if (this.initialized) {
		Class<?> targetClass = getTargetClass(target);
		JCacheOperation<?> operation = getCacheOperationSource().getCacheOperation(method, targetClass);
		if (operation != null) {
			CacheOperationInvocationContext<?> context =
					createCacheOperationInvocationContext(target, args, operation);
			return execute(context, invoker);
		}
	}

	return invoker.invoke();
}
 
Example 13
Source File: JCacheAspectSupport.java    From java-technology-stack with MIT License 5 votes vote down vote up
@Nullable
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
	// Check whether aspect is enabled to cope with cases where the AJ is pulled in automatically
	if (this.initialized) {
		Class<?> targetClass = AopProxyUtils.ultimateTargetClass(target);
		JCacheOperation<?> operation = getCacheOperationSource().getCacheOperation(method, targetClass);
		if (operation != null) {
			CacheOperationInvocationContext<?> context =
					createCacheOperationInvocationContext(target, args, operation);
			return execute(context, invoker);
		}
	}

	return invoker.invoke();
}
 
Example 14
Source File: CachePutInterceptor.java    From spring-analysis-note with MIT License 5 votes vote down vote up
@Override
protected Object invoke(
		CacheOperationInvocationContext<CachePutOperation> context, CacheOperationInvoker invoker) {

	CachePutOperation operation = context.getOperation();
	CacheKeyInvocationContext<CachePut> invocationContext = createCacheKeyInvocationContext(context);

	boolean earlyPut = operation.isEarlyPut();
	Object value = invocationContext.getValueParameter().getValue();
	if (earlyPut) {
		cacheValue(context, value);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyPut) {
			cacheValue(context, value);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyPut && operation.getExceptionTypeFilter().match(original.getClass())) {
			cacheValue(context, value);
		}
		throw ex;
	}
}
 
Example 15
Source File: CacheRemoveAllInterceptor.java    From spring4-understanding with Apache License 2.0 5 votes vote down vote up
@Override
protected Object invoke(CacheOperationInvocationContext<CacheRemoveAllOperation> context,
		CacheOperationInvoker invoker) {

	CacheRemoveAllOperation operation = context.getOperation();

	boolean earlyRemove = operation.isEarlyRemove();

	if (earlyRemove) {
		removeAll(context);
	}

	try {
		Object result = invoker.invoke();
		if (!earlyRemove) {
			removeAll(context);
		}
		return result;
	}
	catch (CacheOperationInvoker.ThrowableWrapper ex) {
		Throwable original = ex.getOriginal();
		if (!earlyRemove && operation.getExceptionTypeFilter().match(original.getClass())) {
			removeAll(context);
		}
		throw ex;
	}
}
 
Example 16
Source File: JCacheAspectSupport.java    From spring-analysis-note with MIT License 5 votes vote down vote up
@Nullable
protected Object execute(CacheOperationInvoker invoker, Object target, Method method, Object[] args) {
	// Check whether aspect is enabled to cope with cases where the AJ is pulled in automatically
	if (this.initialized) {
		Class<?> targetClass = AopProxyUtils.ultimateTargetClass(target);
		JCacheOperation<?> operation = getCacheOperationSource().getCacheOperation(method, targetClass);
		if (operation != null) {
			CacheOperationInvocationContext<?> context =
					createCacheOperationInvocationContext(target, args, operation);
			return execute(context, invoker);
		}
	}

	return invoker.invoke();
}
 
Example 17
Source File: JCacheAspectSupport.java    From spring4-understanding with Apache License 2.0 2 votes vote down vote up
/**
 * Execute the underlying operation (typically in case of cache miss) and return
 * the result of the invocation. If an exception occurs it will be wrapped in
 * a {@code ThrowableWrapper}: the exception can be handled or modified but it
 * <em>must</em> be wrapped in a {@code ThrowableWrapper} as well.
 * @param invoker the invoker handling the operation being cached
 * @return the result of the invocation
 * @see CacheOperationInvoker#invoke()
 */
protected Object invokeOperation(CacheOperationInvoker invoker) {
	return invoker.invoke();
}
 
Example 18
Source File: JCacheAspectSupport.java    From lams with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Execute the underlying operation (typically in case of cache miss) and return
 * the result of the invocation. If an exception occurs it will be wrapped in
 * a {@code ThrowableWrapper}: the exception can be handled or modified but it
 * <em>must</em> be wrapped in a {@code ThrowableWrapper} as well.
 * @param invoker the invoker handling the operation being cached
 * @return the result of the invocation
 * @see CacheOperationInvoker#invoke()
 */
protected Object invokeOperation(CacheOperationInvoker invoker) {
	return invoker.invoke();
}
 
Example 19
Source File: JCacheAspectSupport.java    From java-technology-stack with MIT License 2 votes vote down vote up
/**
 * Execute the underlying operation (typically in case of cache miss) and return
 * the result of the invocation. If an exception occurs it will be wrapped in
 * a {@code ThrowableWrapper}: the exception can be handled or modified but it
 * <em>must</em> be wrapped in a {@code ThrowableWrapper} as well.
 * @param invoker the invoker handling the operation being cached
 * @return the result of the invocation
 * @see CacheOperationInvoker#invoke()
 */
protected Object invokeOperation(CacheOperationInvoker invoker) {
	return invoker.invoke();
}
 
Example 20
Source File: JCacheAspectSupport.java    From spring-analysis-note with MIT License 2 votes vote down vote up
/**
 * Execute the underlying operation (typically in case of cache miss) and return
 * the result of the invocation. If an exception occurs it will be wrapped in
 * a {@code ThrowableWrapper}: the exception can be handled or modified but it
 * <em>must</em> be wrapped in a {@code ThrowableWrapper} as well.
 * @param invoker the invoker handling the operation being cached
 * @return the result of the invocation
 * @see CacheOperationInvoker#invoke()
 */
protected Object invokeOperation(CacheOperationInvoker invoker) {
	return invoker.invoke();
}