You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ma...@apache.org on 2013/10/14 13:02:52 UTC
svn commit: r1531850 - in
/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy:
BaseProxyHandler.java CglibProxyHandler.java CglibProxySource.java
JdkProxyHandler.java
Author: markt
Date: Mon Oct 14 11:02:52 2013
New Revision: 1531850
URL: http://svn.apache.org/r1531850
Log:
Refactor to reduce duplication
Modified:
commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java
commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java
commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java
commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java
Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java?rev=1531850&r1=1531849&r2=1531850&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/BaseProxyHandler.java Mon Oct 14 11:02:52 2013
@@ -16,13 +16,19 @@
*/
package org.apache.commons.pool2.proxy;
+import java.lang.reflect.Method;
+
+import org.apache.commons.pool2.UsageTracking;
+
class BaseProxyHandler<T> {
private T pooledObject;
+ private final UsageTracking<T> usageTracking;
- BaseProxyHandler(T pooledObject) {
+ BaseProxyHandler(T pooledObject, UsageTracking<T> usageTracking) {
this.pooledObject = pooledObject;
+ this.usageTracking = usageTracking;
}
@@ -44,4 +50,14 @@ class BaseProxyHandler<T> {
"used as it has been returned to the Object Pool.");
}
}
+
+
+ Object doInvoke(Method method, Object[] args) throws Throwable {
+ validateProxiedObject();
+ T pooledObject = getPooledObject();
+ if (usageTracking != null) {
+ usageTracking.use(pooledObject);
+ }
+ return method.invoke(pooledObject, args);
+ }
}
Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java?rev=1531850&r1=1531849&r2=1531850&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxyHandler.java Mon Oct 14 11:02:52 2013
@@ -11,22 +11,14 @@ import net.sf.cglib.proxy.MethodProxy;
public class CglibProxyHandler<T> extends BaseProxyHandler<T>
implements MethodInterceptor {
- private final UsageTracking<T> usageTracking;
CglibProxyHandler(T pooledObject, UsageTracking<T> usageTracking) {
- super(pooledObject);
- this.usageTracking = usageTracking;
+ super(pooledObject, usageTracking);
}
@Override
public Object intercept(Object object, Method method, Object[] args,
MethodProxy methodProxy) throws Throwable {
- validateProxiedObject();
- T pooledObject = getPooledObject();
- if (usageTracking != null) {
- usageTracking.use(pooledObject);
- }
-
- return method.invoke(pooledObject, args);
+ return doInvoke(method, args);
}
}
Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java?rev=1531850&r1=1531849&r2=1531850&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/CglibProxySource.java Mon Oct 14 11:02:52 2013
@@ -49,9 +49,9 @@ public class CglibProxySource<T> impleme
@Override
public T resolveProxy(T proxy) {
@SuppressWarnings("unchecked")
- BaseProxyHandler<T> proxyInterceptor =
- (BaseProxyHandler<T>) ((Factory) proxy).getCallback(0);
- T pooledObject = proxyInterceptor.disableProxy();
+ CglibProxyHandler<T> cglibProxyHandler =
+ (CglibProxyHandler<T>) ((Factory) proxy).getCallback(0);
+ T pooledObject = cglibProxyHandler.disableProxy();
return pooledObject;
}
}
Modified: commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java?rev=1531850&r1=1531849&r2=1531850&view=diff
==============================================================================
--- commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java (original)
+++ commons/proper/pool/trunk/src/main/java/org/apache/commons/pool2/proxy/JdkProxyHandler.java Mon Oct 14 11:02:52 2013
@@ -24,24 +24,15 @@ import org.apache.commons.pool2.UsageTra
class JdkProxyHandler<T> extends BaseProxyHandler<T>
implements InvocationHandler {
- private final UsageTracking<T> usageTracking;
-
-
JdkProxyHandler(T pooledObject, UsageTracking<T> usageTracking) {
- super(pooledObject);
- this.usageTracking = usageTracking;
+ super(pooledObject, usageTracking);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
- validateProxiedObject();
- T pooledObject = getPooledObject();
- if (usageTracking != null) {
- usageTracking.use(pooledObject);
- }
- return method.invoke(pooledObject, args);
+ return doInvoke(method, args);
}
}