From 5c3ceb8ef0b0a400e46616f210be1505aeed7c22 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Mon, 28 Mar 2011 18:09:04 +0000 Subject: [PATCH] SPR-7971 + add target object to KeyGenerator --- .../src/main/java/org/springframework/cache/KeyGenerator.java | 2 +- .../springframework/cache/interceptor/CacheAspectSupport.java | 4 +++- .../springframework/cache/support/DefaultKeyGenerator.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/org.springframework.context/src/main/java/org/springframework/cache/KeyGenerator.java b/org.springframework.context/src/main/java/org/springframework/cache/KeyGenerator.java index ae5dd9b89a..d089dbfa48 100644 --- a/org.springframework.context/src/main/java/org/springframework/cache/KeyGenerator.java +++ b/org.springframework.context/src/main/java/org/springframework/cache/KeyGenerator.java @@ -26,5 +26,5 @@ import java.lang.reflect.Method; */ public interface KeyGenerator { - K extract(Method method, Object... params); + K extract(Object target, Method method, Object... params); } diff --git a/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java b/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java index 211f11d23d..5a209f9502 100644 --- a/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java +++ b/org.springframework.context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java @@ -306,6 +306,7 @@ public abstract class CacheAspectSupport implements InitializingBean { private CacheDefinition definition; private final Collection> caches; + private final Object target; private final Method method; private final Object[] args; @@ -318,6 +319,7 @@ public abstract class CacheAspectSupport implements InitializingBean { Object target, Class targetClass) { this.definition = operationDefinition; this.caches = CacheAspectSupport.this.getCaches(definition); + this.target = target; this.method = method; this.args = args; @@ -352,7 +354,7 @@ public abstract class CacheAspectSupport implements InitializingBean { return evaluator.key(definition.getKey(), method, evalContext); } - return keyGenerator.extract(method, args); + return keyGenerator.extract(target, method, args); } protected Collection> getCaches() { diff --git a/org.springframework.context/src/main/java/org/springframework/cache/support/DefaultKeyGenerator.java b/org.springframework.context/src/main/java/org/springframework/cache/support/DefaultKeyGenerator.java index 72aab7e884..6466fe4f2f 100644 --- a/org.springframework.context/src/main/java/org/springframework/cache/support/DefaultKeyGenerator.java +++ b/org.springframework.context/src/main/java/org/springframework/cache/support/DefaultKeyGenerator.java @@ -28,7 +28,7 @@ import org.springframework.cache.KeyGenerator; */ public class DefaultKeyGenerator implements KeyGenerator { - public Object extract(Method method, Object... params) { + public Object extract(Object target, Method method, Object... params) { if (params.length == 1) { return params[0]; }