You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2007/12/02 10:07:16 UTC
svn commit: r600261 -
/wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
Author: jdonnerstag
Date: Sun Dec 2 01:07:15 2007
New Revision: 600261
URL: http://svn.apache.org/viewvc?rev=600261&view=rev
Log:
fixed wicket-1162: Use non-default namingPolicy when creating Proxies via CGLib
Modified:
wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
Modified: wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java?rev=600261&r1=600260&r2=600261&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java (original)
+++ wicket/trunk/jdk-1.4/wicket-ioc/src/main/java/org/apache/wicket/proxy/LazyInitProxyFactory.java Sun Dec 2 01:07:15 2007
@@ -26,6 +26,8 @@
import java.util.Arrays;
import java.util.List;
+import net.sf.cglib.core.DefaultNamingPolicy;
+import net.sf.cglib.core.Predicate;
import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
@@ -56,7 +58,6 @@
* <pre>
* class UserServiceLocator implements IProxyTargetLocator
* {
- *
* public static final IProxyTargetLocator INSTANCE = new UserServiceLocator();
*
* Object locateProxyObject()
@@ -85,7 +86,7 @@
* }
*
* UserService service = LazyInitProxyFactory.createProxy(UserService.class,
- * UserServiceLocator.INSTANCE);
+ * UserServiceLocator.INSTANCE);
*
* UserDetachableModel model = new UserDetachableModel(10, service);
*
@@ -134,8 +135,8 @@
try
{
return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
- new Class[] { type, Serializable.class, ILazyInitProxy.class,
- IWriteReplace.class }, handler);
+ new Class[] { type, Serializable.class, ILazyInitProxy.class,
+ IWriteReplace.class }, handler);
}
catch (IllegalArgumentException e)
{
@@ -146,8 +147,8 @@
* loaded this class.
*/
return Proxy.newProxyInstance(LazyInitProxyFactory.class.getClassLoader(),
- new Class[] { type, Serializable.class, ILazyInitProxy.class,
- IWriteReplace.class }, handler);
+ new Class[] { type, Serializable.class, ILazyInitProxy.class,
+ IWriteReplace.class }, handler);
}
}
@@ -160,11 +161,17 @@
IWriteReplace.class });
e.setSuperclass(type);
e.setCallback(handler);
+ e.setNamingPolicy(new DefaultNamingPolicy()
+ {
+ public String getClassName(final String prefix, final String source,
+ final Object key, final Predicate names)
+ {
+ return super.getClassName("WICKET_" + prefix, source, key, names);
+ }
+ });
return e.create();
-
}
-
}
/**
@@ -200,9 +207,9 @@
{
private static final long serialVersionUID = 1L;
- private IProxyTargetLocator locator;
+ private final IProxyTargetLocator locator;
- private String type;
+ private final String type;
/**
* Constructor
@@ -226,7 +233,7 @@
catch (ClassNotFoundException e)
{
throw new InvalidClassException(type, "could not resolve class [" + type +
- "] when deserializing proxy");
+ "] when deserializing proxy");
}
return LazyInitProxyFactory.createProxy(clazz, locator);
@@ -241,17 +248,17 @@
*
*/
private static class CGLibInterceptor
- implements
- MethodInterceptor,
- ILazyInitProxy,
- Serializable,
- IWriteReplace
+ implements
+ MethodInterceptor,
+ ILazyInitProxy,
+ Serializable,
+ IWriteReplace
{
private static final long serialVersionUID = 1L;
- private IProxyTargetLocator locator;
+ private final IProxyTargetLocator locator;
- private String typeName;
+ private final String typeName;
private transient Object target;
@@ -267,7 +274,7 @@
public CGLibInterceptor(Class type, IProxyTargetLocator locator)
{
super();
- this.typeName = type.getName();
+ typeName = type.getName();
this.locator = locator;
}
@@ -276,7 +283,7 @@
* java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy)
*/
public Object intercept(Object object, Method method, Object[] args, MethodProxy proxy)
- throws Throwable
+ throws Throwable
{
if (isFinalizeMethod(method))
{
@@ -289,7 +296,7 @@
}
else if (isHashCodeMethod(method))
{
- return new Integer(this.hashCode());
+ return new Integer(hashCode());
}
else if (isToStringMethod(method))
{
@@ -326,7 +333,6 @@
{
return new ProxyReplacement(typeName, locator);
}
-
}
/**
@@ -337,17 +343,17 @@
*
*/
private static class JdkHandler
- implements
- InvocationHandler,
- ILazyInitProxy,
- Serializable,
- IWriteReplace
+ implements
+ InvocationHandler,
+ ILazyInitProxy,
+ Serializable,
+ IWriteReplace
{
private static final long serialVersionUID = 1L;
- private IProxyTargetLocator locator;
+ private final IProxyTargetLocator locator;
- private String typeName;
+ private final String typeName;
private transient Object target;
@@ -364,7 +370,7 @@
{
super();
this.locator = locator;
- this.typeName = type.getName();
+ typeName = type.getName();
}
@@ -385,7 +391,7 @@
}
else if (isHashCodeMethod(method))
{
- return new Integer(this.hashCode());
+ return new Integer(hashCode());
}
else if (isToStringMethod(method))
{
@@ -430,7 +436,6 @@
{
return new ProxyReplacement(typeName, locator);
}
-
}
/**
@@ -443,7 +448,7 @@
protected static boolean isEqualsMethod(Method method)
{
return method.getReturnType() == boolean.class && method.getParameterTypes().length == 1 &&
- method.getParameterTypes()[0] == Object.class && method.getName().equals("equals");
+ method.getParameterTypes()[0] == Object.class && method.getName().equals("equals");
}
/**
@@ -456,7 +461,7 @@
protected static boolean isHashCodeMethod(Method method)
{
return method.getReturnType() == int.class && method.getParameterTypes().length == 0 &&
- method.getName().equals("hashCode");
+ method.getName().equals("hashCode");
}
/**
@@ -469,7 +474,7 @@
protected static boolean isToStringMethod(Method method)
{
return method.getReturnType() == String.class && method.getParameterTypes().length == 0 &&
- method.getName().equals("toString");
+ method.getName().equals("toString");
}
/**
@@ -482,7 +487,7 @@
protected static boolean isFinalizeMethod(Method method)
{
return method.getReturnType() == void.class && method.getParameterTypes().length == 0 &&
- method.getName().equals("finalize");
+ method.getName().equals("finalize");
}
/**
@@ -495,7 +500,6 @@
protected static boolean isWriteReplaceMethod(Method method)
{
return method.getReturnType() == Object.class && method.getParameterTypes().length == 0 &&
- method.getName().equals("writeReplace");
+ method.getName().equals("writeReplace");
}
-
}