Author: dblevins
Date: Wed Sep 5 05:24:19 2012
New Revision: 1380996
URL: http://svn.apache.org/viewvc?rev=1380996&view=rev
Log:
Small step in refactoring for OWB-701 - Remove Javassist
Favor InvocationHandler method signatures everyhere, but
AbstractDecoratorMethodHandler. Need to investigate that one further.
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/proxy/EjbBeanProxyHandler.java
openwebbeans/trunk/webbeans-impl/pom.xml
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/AbstractDecoratorMethodHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DependentScopedBeanInterceptorHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/proxy/EjbBeanProxyHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/proxy/EjbBeanProxyHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/proxy/EjbBeanProxyHandler.java
(original)
+++
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/proxy/EjbBeanProxyHandler.java
Wed Sep 5 05:24:19 2012
@@ -25,6 +25,7 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
@@ -54,7 +55,7 @@ import javassist.util.proxy.MethodHandle
*
*/
@SuppressWarnings("unchecked")
-public class EjbBeanProxyHandler implements MethodHandler, Serializable,
Externalizable
+public class EjbBeanProxyHandler implements InvocationHandler, MethodHandler,
Serializable, Externalizable
{
//Logger instance
private final static Logger logger =
WebBeansLoggerFacade.getLogger(EjbBeanProxyHandler.class);
@@ -103,10 +104,12 @@ public class EjbBeanProxyHandler impleme
webBeansContext = ejbBean.getWebBeansContext();
}
- /**
- * {@inheritDoc}
- */
- public Object invoke(Object proxyInstance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ {
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Throwable
{
Object result = null;
@@ -124,7 +127,7 @@ public class EjbBeanProxyHandler impleme
{
webBeansContext.getSecurityService().doPrivilegedSetAccessible(method, true);
}
- return proceed.invoke(proxyInstance, arguments);
+ return method.invoke(instance, arguments);
}
try
@@ -162,7 +165,7 @@ public class EjbBeanProxyHandler impleme
if
(this.ejbBean.getEjbType().equals(SessionBeanType.STATEFUL))
{
// It's an SFSB, so we need to track when it's removed
- this.ejbBean.addDependentSFSB(webbeansInstance,
proxyInstance);
+ this.ejbBean.addDependentSFSB(webbeansInstance,
instance);
}
}
}
@@ -173,7 +176,7 @@ public class EjbBeanProxyHandler impleme
if (checkEjbRemoveMethod(method))
{
// Stop tracking the EJB associated with this proxy
- this.ejbBean.removeDependentSFSB(proxyInstance);
+ this.ejbBean.removeDependentSFSB(instance);
/*
* Keep the local reference to the dependent SFSB. If the
Modified: openwebbeans/trunk/webbeans-impl/pom.xml
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/pom.xml?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/pom.xml (original)
+++ openwebbeans/trunk/webbeans-impl/pom.xml Wed Sep 5 05:24:19 2012
@@ -48,6 +48,12 @@
</dependency>
<dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ <version>3.3.1</version>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jcdi_1.0_spec</artifactId>
<optional>true</optional>
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
Wed Sep 5 05:24:19 2012
@@ -261,17 +261,15 @@ public abstract class BuildInOwbBean<T>
this.actualObject = actualObject;
}
- public Object invoke(Object self, Method thisMethod, Method proceed,
Object[] args) throws Throwable
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ {
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[]
arguments) throws Throwable
{
- if(proceed != null)
- {
- return proceed.invoke(actualObject,args);
- }
- else
- {
//interface method.
- return thisMethod.invoke(actualObject,args);
- }
+ return method.invoke(actualObject, arguments);
}
private void writeObject(ObjectOutputStream s) throws IOException
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/AbstractDecoratorMethodHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/AbstractDecoratorMethodHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/AbstractDecoratorMethodHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/AbstractDecoratorMethodHandler.java
Wed Sep 5 05:24:19 2012
@@ -34,11 +34,11 @@ public class AbstractDecoratorMethodHand
public Object invoke(Object self, Method thisMethod, Method proceed,
Object[] args) throws Throwable
{
//Don't attempt to call it if the method doesn't exist
- if(proceed != null)
+ if(proceed != null)
{
return proceed.invoke(self,args);
}
-
+
//Throw the exception so the DelegateHandler will continue the loop
throw new NoSuchMethodException();
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
Wed Sep 5 05:24:19 2012
@@ -23,6 +23,7 @@ import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
@@ -42,7 +43,7 @@ import org.apache.webbeans.util.WebBeans
import javassist.util.proxy.MethodHandler;
-public class DelegateHandler implements MethodHandler, Serializable,
Externalizable
+public class DelegateHandler implements InvocationHandler, MethodHandler,
Serializable, Externalizable
{
private static final Logger logger =
WebBeansLoggerFacade.getLogger(DelegateHandler.class);
private static final long serialVersionUID = -3063755008944970684L;
@@ -82,6 +83,11 @@ public class DelegateHandler implements
public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Exception
{
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Exception
+ {
// Tuck away a reference to the bean being Decorated
if (actualInstance == null)
{
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DependentScopedBeanInterceptorHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DependentScopedBeanInterceptorHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DependentScopedBeanInterceptorHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/DependentScopedBeanInterceptorHandler.java
Wed Sep 5 05:24:19 2012
@@ -70,9 +70,14 @@ public class DependentScopedBeanIntercep
/**
* {@inheritDoc}
*/
- public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Exception
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
{
- return super.invoke(actualInstance, method, proceed, arguments,
(CreationalContextImpl<?>)creationalContext);
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Throwable
+ {
+ return super.invoke(actualInstance, method, arguments,
(CreationalContextImpl<?>)creationalContext);
}
/**
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
Wed Sep 5 05:24:19 2012
@@ -208,6 +208,11 @@ public abstract class InterceptorHandler
*/
public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments, CreationalContextImpl<?> ownerCreationalContext) throws
Exception
{
+ return invoke(instance, method, arguments, ownerCreationalContext);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments,
CreationalContextImpl<?> ownerCreationalContext) throws Exception
+ {
if (instance == null)
{
return null;
@@ -297,7 +302,7 @@ public abstract class InterceptorHandler
// manage the stack
if (decoratorDelegateHandler != null)
{
- return decoratorDelegateHandler.invoke(instance,
method, proceed, arguments);
+ return decoratorDelegateHandler.invoke(instance,
method, arguments);
}
}
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/NormalScopedBeanInterceptorHandler.java
Wed Sep 5 05:24:19 2012
@@ -104,7 +104,12 @@ public class NormalScopedBeanInterceptor
/**
* {@inheritDoc}
*/
- public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Exception
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ {
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Throwable
{
if (method.getName() == FINALIZE && // Method.getName() is defined
to return .intern() in the VM spec.
method.getParameterTypes().length == 0 &&
@@ -120,7 +125,7 @@ public class NormalScopedBeanInterceptor
Object webbeansInstance = getContextualInstance();
//Call super
- return super.invoke(webbeansInstance, method, proceed, arguments,
(CreationalContextImpl<?>) getContextualCreationalContext());
+ return super.invoke(webbeansInstance, method, arguments,
(CreationalContextImpl<?>) getContextualCreationalContext());
}
/**
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
Wed Sep 5 05:24:19 2012
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
+import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -31,7 +32,7 @@ import org.apache.webbeans.component.Res
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.spi.ResourceInjectionService;
-public class ResourceProxyHandler implements MethodHandler, Serializable,
Externalizable
+public class ResourceProxyHandler implements InvocationHandler, MethodHandler,
Serializable, Externalizable
{
/**
*
@@ -53,11 +54,16 @@ public class ResourceProxyHandler implem
this.actualResource = actualResource;
}
- public Object invoke(Object self, Method actualMethod, Method proceed,
Object[] args) throws Throwable
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ {
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Throwable
{
try
{
- return actualMethod.invoke(actualResource, args);
+ return method.invoke(actualResource, arguments);
}
catch (InvocationTargetException e)
{
Modified:
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java?rev=1380996&r1=1380995&r2=1380996&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
(original)
+++
openwebbeans/trunk/webbeans-jms/src/main/java/org/apache/webbeans/jms/util/JmsProxyHandler.java
Wed Sep 5 05:24:19 2012
@@ -18,6 +18,7 @@
*/
package org.apache.webbeans.jms.util;
+import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -43,7 +44,7 @@ import org.apache.webbeans.util.ClassUti
import javassist.util.proxy.MethodHandler;
-public class JmsProxyHandler implements MethodHandler
+public class JmsProxyHandler implements InvocationHandler, MethodHandler
{
private JmsBean<?> jmsComponent = null;
@@ -65,7 +66,12 @@ public class JmsProxyHandler implements
this.injectionClazz = injectionClazz;
}
- public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Exception
+ public Object invoke(Object instance, Method method, Method proceed,
Object[] arguments) throws Throwable
+ {
+ return invoke(instance, method, arguments);
+ }
+
+ public Object invoke(Object instance, Method method, Object[] arguments)
throws Throwable
{
if(method.getName().equals("closeJMSObject"))
{
@@ -129,7 +135,7 @@ public class JmsProxyHandler implements
}
else
{
- return proceed.invoke(instance, arguments);
+ return method.invoke(instance, arguments);
}
}