You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/04/26 07:16:34 UTC
svn commit: r532612 - in /incubator/openejb/trunk/openejb3:
container/openejb-core/src/main/java/org/apache/openejb/
container/openejb-core/src/main/java/org/apache/openejb/core/
container/openejb-core/src/main/java/org/apache/openejb/core/cmp/ contain...
Author: dblevins
Date: Wed Apr 25 22:16:33 2007
New Revision: 532612
URL: http://svn.apache.org/viewvc?view=rev&rev=532612
Log:
Add the interface to the container invoke signature as discussed
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/RpcContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/RpcContainerWrapper.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbHomeHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbObjectHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbHomeHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxRpcWebServiceInvocationTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxWsWebServiceInvocationTest.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
incubator/openejb/trunk/openejb3/examples/moviefun/src/main/webapp/WEB-INF/web.xml
incubator/openejb/trunk/openejb3/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/EjbContainerProvider.java
incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/RpcContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/RpcContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/RpcContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/RpcContainer.java Wed Apr 25 22:16:33 2007
@@ -25,6 +25,6 @@
*/
public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey, Object securityIdentity) throws OpenEJBException;
- public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey) throws OpenEJBException;
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object [] args, Object primKey) throws OpenEJBException;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/RpcContainerWrapper.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/RpcContainerWrapper.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/RpcContainerWrapper.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/RpcContainerWrapper.java Wed Apr 25 22:16:33 2007
@@ -32,11 +32,11 @@
}
public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return container.invoke(deployID, callMethod, args, primKey);
+ return container.invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
- public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
- return container.invoke(deployID, callMethod, args, primKey);
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
+ return container.invoke(deployID, callInterface, callMethod, args, primKey);
}
public ContainerType getContainerType() {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java Wed Apr 25 22:16:33 2007
@@ -257,10 +257,10 @@
* @deprecated use invoke signature without 'securityIdentity' argument.
*/
public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return invoke(deployID, callMethod, args, primKey);
+ return invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
-
- public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey) throws OpenEJBException {
+
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object[] args, Object primKey) throws OpenEJBException {
CoreDeploymentInfo deployInfo = (CoreDeploymentInfo) this.getDeploymentInfo(deployID);
if (deployInfo == null) throw new OpenEJBException("Deployment does not exist in this container. Deployment(id='"+deployID+"'), Container(id='"+containerID+"')");
ThreadContext callContext = new ThreadContext(deployInfo, primKey);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java Wed Apr 25 22:16:33 2007
@@ -24,7 +24,6 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
-import java.util.List;
import javax.ejb.EJBAccessException;
import javax.ejb.EJBHome;
@@ -137,10 +136,10 @@
* @deprecated use invoke signature without 'securityIdentity' argument.
*/
public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return invoke(deployID, callMethod, args, primKey);
+ return invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
- public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey) throws org.apache.openejb.OpenEJBException {
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object [] args, Object primKey) throws org.apache.openejb.OpenEJBException {
CoreDeploymentInfo deployInfo = (CoreDeploymentInfo) this.getDeploymentInfo(deployID);
if (deployInfo == null) throw new OpenEJBException("Deployment does not exist in this container. Deployment(id='"+deployID+"'), Container(id='"+containerID+"')");
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbHomeHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbHomeHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbHomeHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbHomeHandler.java Wed Apr 25 22:16:33 2007
@@ -51,10 +51,10 @@
}
- protected Object findX(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object findX(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
Object retValue = null;
try {
- retValue = container.invoke(deploymentID, method, args, null);
+ retValue = container.invoke(deploymentID, interfce, method, args, null);
} catch (OpenEJBException e) {
e.printStackTrace();
throw e;
@@ -93,9 +93,9 @@
}
- protected Object removeByPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object removeByPrimaryKey(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
Object primKey = args[0];
- container.invoke(deploymentID, method, args, primKey);
+ container.invoke(deploymentID, interfce, method, args, primKey);
/*
* This operation takes care of invalidating all the EjbObjectProxyHanders associated with
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbObjectHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityEjbObjectHandler.java Wed Apr 25 22:16:33 2007
@@ -17,7 +17,6 @@
package org.apache.openejb.core.entity;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
import org.apache.openejb.Container;
@@ -86,9 +85,9 @@
}
- protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
checkAuthorization(method);
- Object value = container.invoke(deploymentID, method, args, primaryKey);
+ Object value = container.invoke(deploymentID, interfce, method, args, primaryKey);
/*
* This operation takes care of invalidating all the EjbObjectProxyHanders associated with
* the same RegistryId. See this.createProxy().
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/BaseEjbProxyHandler.java Wed Apr 25 22:16:33 2007
@@ -86,6 +86,7 @@
protected final InterfaceType interfaceType;
protected final List<Class> interfaces;
private static final boolean REMOTE_COPY_ENABLED = parseRemoteCopySetting();
+ protected final Class mainInterface;
public BaseEjbProxyHandler(DeploymentInfo deploymentInfo, Object pk, InterfaceType interfaceType, List<Class> interfaces) {
this.container = (RpcContainer) deploymentInfo.getContainer();
@@ -106,6 +107,49 @@
if (!interfaceType.isLocal()){
doIntraVmCopy = REMOTE_COPY_ENABLED;
}
+
+ if (interfaceType.isHome()){
+ mainInterface = deploymentInfo.getInterface(interfaceType);
+ } else {
+ // Then arbitrarily pick the first interface
+ mainInterface = interfaces.get(0);
+ }
+ }
+
+ /**
+ * This method should be called to determine the corresponding
+ * business interface class to name as the invoking interface.
+ * This method should NOT be called on non-business-interface
+ * methods the proxy has such as java.lang.Object or IntraVmProxy.
+ * @param method
+ * @return the business (or component) interface matching this method
+ */
+ protected Class<?> getInvokedInterface(Method method) {
+ // Home's only have one interface ever. We don't
+ // need to verify that the method invoked is in
+ // it's interface.
+ if (interfaceType.isHome()) return mainInterface;
+
+ Class declaringClass = method.getDeclaringClass();
+
+ // If our "main" interface is or extends the method's declaring class
+ // then we're good. We know the main interface has the method being
+ // invoked and it's safe to return it as the invoked interface.
+ if (declaringClass.isAssignableFrom(mainInterface)){
+ return mainInterface;
+ }
+
+ // If the method being invoked isn't in the "main" interface
+ // we need to find a suitable interface or throw an exception.
+ for (Class secondaryInterface : interfaces) {
+ if (declaringClass.isAssignableFrom(secondaryInterface)){
+ return secondaryInterface;
+ }
+ }
+
+ // We couldn't find an implementing interface. Where did this
+ // method come from??? Freak occurence. Throw an exception.
+ throw new IllegalStateException("Received method invocation and cannot determine corresponding business interface: method=" + method);
}
private static boolean parseRemoteCopySetting() {
@@ -165,9 +209,7 @@
throw new UnsupportedOperationException("Unkown method: " + method);
}
-
- String jndiEnc = System.getProperty(javax.naming.Context.URL_PKG_PREFIXES);
-// System.setProperty(javax.naming.Context.URL_PKG_PREFIXES,"org.apache.openejb.core.ivm.naming");
+ Class interfce = getInvokedInterface(method);
// Should we copy arguments as required by the specification?
if (doIntraVmCopy && !doCrossClassLoaderCopy) {
@@ -182,7 +224,7 @@
}
Object returnObj = null;
try {
- returnObj = _invoke(proxy, method, args);
+ returnObj = _invoke(proxy, interfce, method, args);
} catch (Throwable throwable) {
// exceptions are return values and must be coppied
IntraVmCopyMonitor.preCopyOperation();
@@ -213,6 +255,7 @@
args = copyArgs(args);
}
method = copyMethod(method);
+ interfce = (Class) copyObj(interfce);
} finally {
Thread.currentThread().setContextClassLoader(oldClassLoader);
IntraVmCopyMonitor.postCrossClassLoaderOperation();
@@ -221,7 +264,7 @@
// invoke method
Object returnObj = null;
try {
- returnObj = _invoke(proxy, method, args);
+ returnObj = _invoke(proxy, interfce, method, args);
} catch (Throwable throwable) {
// exceptions are return values and must be coppied
IntraVmCopyMonitor.preCrossClassLoaderOperation();
@@ -255,7 +298,7 @@
* property in the static block for this class.
*/
- return _invoke(proxy, method, args);
+ return _invoke(proxy, interfce, method, args);
} catch (TransactionRequiredException e) {
if (interfaceType.isBusiness()) {
throw new EJBTransactionRequiredException(e.getMessage()).initCause(getCause(e));
@@ -307,6 +350,15 @@
}
}
+ /**
+ * Method instance on proxies that come from a classloader outside
+ * the bean's classloader need to be swapped out for the identical
+ * method in the bean's classloader.
+ *
+ * @param method
+ * @return return's the same method but loaded from the beans classloader
+ */
+
private Method copyMethod(Method method) throws Exception {
int parameterCount = method.getParameterTypes().length;
Object[] types = new Object[1 + parameterCount];
@@ -361,7 +413,7 @@
}
}
- protected abstract Object _invoke(Object proxy, Method method, Object[] args) throws Throwable;
+ protected abstract Object _invoke(Object proxy, Class interfce, Method method, Object[] args) throws Throwable;
protected Object[] copyArgs(Object[] objects) throws IOException, ClassNotFoundException {
/*
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Wed Apr 25 22:16:33 2007
@@ -136,7 +136,7 @@
protected abstract EjbObjectProxyHandler newEjbObjectHandler(DeploymentInfo deploymentInfo, Object pk, InterfaceType interfaceType, List<Class> interfaces);
- protected Object _invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ protected Object _invoke(Object proxy, Class interfce, Method method, Object[] args) throws Throwable {
if (logger.isInfoEnabled()) {
logger.info("invoking method " + method.getName() + " on " + deploymentID);
@@ -149,15 +149,15 @@
MethodType operation = dispatchTable.get(methodName);
if (operation == null) {
- retValue = homeMethod(method, args, proxy);
+ retValue = homeMethod(interfce, method, args, proxy);
} else {
switch (operation) {
/*-- CREATE ------------- <HomeInterface>.create(<x>) ---*/
case CREATE:
- retValue = create(method, args, proxy);
+ retValue = create(interfce, method, args, proxy);
break;
case FIND:
- retValue = findX(method, args, proxy);
+ retValue = findX(interfce, method, args, proxy);
break;
/*-- GET EJB METADATA ------ EJBHome.getEJBMetaData() ---*/
case META_DATA:
@@ -173,10 +173,10 @@
/*-- HANDLE ------- EJBHome.remove(Handle handle) ---*/
if (javax.ejb.Handle.class.isAssignableFrom(type)) {
- retValue = removeWithHandle(method, args, proxy);
+ retValue = removeWithHandle(interfce, method, args, proxy);
} else {
/*-- PRIMARY KEY ----- EJBHome.remove(Object key) ---*/
- retValue = removeByPrimaryKey(method, args, proxy);
+ retValue = removeByPrimaryKey(interfce, method, args, proxy);
}
break;
}
@@ -257,18 +257,18 @@
/* Home interface methods */
/*-------------------------------------------------*/
- protected Object homeMethod(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object homeMethod(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
checkAuthorization(method);
- return container.invoke(deploymentID, method, args, null);
+ return container.invoke(deploymentID, interfce, method, args, null);
}
- protected Object create(Method method, Object[] args, Object proxy) throws Throwable {
- ProxyInfo proxyInfo = (ProxyInfo) container.invoke(deploymentID, method, args, null);
+ protected Object create(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
+ ProxyInfo proxyInfo = (ProxyInfo) container.invoke(deploymentID, interfce, method, args, null);
assert proxyInfo != null : "Container returned a null ProxyInfo: ContainerID=" + container.getContainerID();
return createProxy(proxyInfo.getPrimaryKey());
}
- protected abstract Object findX(Method method, Object[] args, Object proxy) throws Throwable;
+ protected abstract Object findX(Class interfce, Method method, Object[] args, Object proxy) throws Throwable;
/*-------------------------------------------------*/
/* EJBHome methods */
@@ -319,7 +319,7 @@
}
}
- protected Object removeWithHandle(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object removeWithHandle(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
IntraVmHandle handle = (IntraVmHandle) args[0];
Object primKey = handle.getPrimaryKey();
@@ -331,7 +331,7 @@
stub = null;
}
- container.invoke(deploymentID, method, args, primKey);
+ container.invoke(deploymentID, interfce, method, args, primKey);
/*
* This operation takes care of invalidating all the EjbObjectProxyHanders associated with
@@ -343,5 +343,5 @@
return null;
}
- protected abstract Object removeByPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable;
+ protected abstract Object removeByPrimaryKey(Class interfce, Method method, Object[] args, Object proxy) throws Throwable;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java Wed Apr 25 22:16:33 2007
@@ -51,7 +51,7 @@
public abstract Object getRegistryId();
- public Object _invoke(Object p, Method m, Object[] a) throws Throwable {
+ public Object _invoke(Object p, Class interfce, Method m, Object[] a) throws Throwable {
java.lang.Object retValue = null;
java.lang.Throwable exc = null;
@@ -62,7 +62,7 @@
Integer operation = (Integer) dispatchTable.get(m.getName());
if (operation == null) {
- retValue = businessMethod(m, a, p);
+ retValue = businessMethod(interfce, m, a, p);
} else {
switch (operation.intValue()) {
case 1:
@@ -75,7 +75,7 @@
retValue = isIdentical(m, a, p);
break;
case 4:
- retValue = remove(m, a, p);
+ retValue = remove(interfce, m, a, p);
break;
case 5:
retValue = getEJBHome(m, a, p);
@@ -200,11 +200,11 @@
protected abstract Object isIdentical(Method method, Object[] args, Object proxy) throws Throwable;
- protected abstract Object remove(Method method, Object[] args, Object proxy) throws Throwable;
+ protected abstract Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable;
- protected Object businessMethod(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object businessMethod(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
// checkAuthorization(method);
- return container.invoke(deploymentID, method, args, primaryKey);
+ return container.invoke(deploymentID, interfce, method, args, primaryKey);
}
public static Object createProxy(DeploymentInfo deploymentInfo, Object primaryKey, InterfaceType interfaceType) {
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Wed Apr 25 22:16:33 2007
@@ -192,10 +192,10 @@
* @deprecated use invoke signature without 'securityIdentity' argument.
*/
public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return invoke(deployID, callMethod, args, primKey);
+ return invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
- public Object invoke(Object deploymentId, Method method, Object[] args, Object primKey) throws OpenEJBException {
+ public Object invoke(Object deploymentId, Class callInterface, Method method, Object[] args, Object primKey) throws OpenEJBException {
// get the target deployment (MDB)
CoreDeploymentInfo deployInfo = (CoreDeploymentInfo) getDeploymentInfo(deploymentId);
if (deployInfo == null) throw new SystemException("Unknown deployment " + deploymentId);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Wed Apr 25 22:16:33 2007
@@ -222,10 +222,10 @@
* @deprecated use invoke signature without 'securityIdentity' argument.
*/
public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return invoke(deployID, callMethod, args, primKey);
+ return invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
- public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
CoreDeploymentInfo deployInfo = (CoreDeploymentInfo) this.getDeploymentInfo(deployID);
if (deployInfo == null)
throw new OpenEJBException("Deployment does not exist in this container. Deployment(id='" + deployID + "'), Container(id='" + containerID + "')");
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbHomeHandler.java Wed Apr 25 22:16:33 2007
@@ -43,11 +43,11 @@
}
- protected Object findX(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object findX(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
throw new UnsupportedOperationException("Stateful beans may not have find methods");
}
- protected Object removeByPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object removeByPrimaryKey(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
throw new RemoveException("Session objects are private resources and do not have primary keys");
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulEjbObjectHandler.java Wed Apr 25 22:16:33 2007
@@ -16,7 +16,6 @@
*/
package org.apache.openejb.core.stateful;
-import org.apache.openejb.RpcContainer;
import org.apache.openejb.InterfaceType;
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.core.ivm.EjbObjectProxyHandler;
@@ -24,7 +23,6 @@
import java.lang.reflect.Method;
import java.rmi.RemoteException;
-import java.util.ArrayList;
import java.util.List;
public class StatefulEjbObjectHandler extends EjbObjectProxyHandler {
@@ -47,9 +45,9 @@
return new Boolean(primaryKey.equals(handler.primaryKey));
}
- protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
checkAuthorization(method);
- Object value = container.invoke(deploymentID, method, args, primaryKey);
+ Object value = container.invoke(deploymentID, interfce, method, args, primaryKey);
invalidateAllHandlers(getRegistryId());
return value;
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java Wed Apr 25 22:16:33 2007
@@ -128,10 +128,10 @@
* @deprecated use invoke signature without 'securityIdentity' argument.
*/
public Object invoke(Object deployID, Method callMethod, Object[] args, Object primKey, Object securityIdentity) throws OpenEJBException {
- return invoke(deployID, callMethod, args, primKey);
+ return invoke(deployID, callMethod.getDeclaringClass(), callMethod, args, primKey);
}
- public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
+ public Object invoke(Object deployID, Class callInterface, Method callMethod, Object [] args, Object primKey) throws OpenEJBException {
CoreDeploymentInfo deployInfo = (CoreDeploymentInfo) this.getDeploymentInfo(deployID);
if (deployInfo == null) throw new OpenEJBException("Deployment does not exist in this container. Deployment(id='"+deployID+"'), Container(id='"+containerID+"')");
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbHomeHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbHomeHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbHomeHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbHomeHandler.java Wed Apr 25 22:16:33 2007
@@ -17,7 +17,6 @@
package org.apache.openejb.core.stateless;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.List;
import javax.ejb.RemoveException;
@@ -33,15 +32,15 @@
super(deploymentInfo, interfaceType, interfaces);
}
- protected Object findX(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object findX(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
throw new UnsupportedOperationException("Stateful beans may not have find methods");
}
- protected Object removeByPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object removeByPrimaryKey(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
throw new RemoveException("Session objects are private resources and do not have primary keys");
}
- protected Object removeWithHandle(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object removeWithHandle(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
// stateless can't be removed
return null;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessEjbObjectHandler.java Wed Apr 25 22:16:33 2007
@@ -17,7 +17,6 @@
package org.apache.openejb.core.stateless;
import org.apache.openejb.Container;
-import org.apache.openejb.RpcContainer;
import org.apache.openejb.InterfaceType;
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.core.ivm.EjbObjectProxyHandler;
@@ -25,7 +24,6 @@
import java.lang.reflect.Method;
import java.rmi.RemoteException;
-import java.util.ArrayList;
import java.util.List;
public class StatelessEjbObjectHandler extends EjbObjectProxyHandler {
@@ -63,7 +61,7 @@
// stateless can't be removed
}
- protected Object remove(Method method, Object[] args, Object proxy) throws Throwable {
+ protected Object remove(Class interfce, Method method, Object[] args, Object proxy) throws Throwable {
// stateless can't be removed
return null;
}
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Wed Apr 25 22:16:33 2007
@@ -37,6 +37,7 @@
import java.util.TimerTask;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import java.lang.reflect.Method;
public class EjbTimerServiceImpl implements EjbTimerService {
private static final Logger log = Logger.getInstance("Timer", "org.apache.openejb.util.resources");
@@ -143,7 +144,7 @@
// make sure it was removed from the strore
timerStore.removeTimer(timerData.getId());
}
-
+
/**
* Returns a timerData to the TimerStore, if a cancel() is rolled back.
* @param timerData the timer to be returned to the timer store
@@ -249,7 +250,7 @@
throw new IllegalStateException("TimerService method not permitted for current operation " + ThreadContext.getThreadContext().getCurrentOperation().name());
}
}
-
+
/**
* This method calls the ejbTimeout method and starts a transaction if the timeout is transacted.
*
@@ -278,7 +279,8 @@
// call the timeout method
try {
RpcContainer container = (RpcContainer) deployment.getContainer();
- container.invoke(deployment.getDeploymentID(), deployment.getEjbTimeout(), new Object[] {timer}, timerData.getPrimaryKey());
+ Method ejbTimeout = deployment.getEjbTimeout();
+ container.invoke(deployment.getDeploymentID(), ejbTimeout.getDeclaringClass(), ejbTimeout, new Object[] {timer}, timerData.getPrimaryKey());
} catch (RuntimeException e) {
// exception from a timer does not necessairly mean failure
log.warning("RuntimeException from ejbTimeout on " + deployment.getDeploymentID(), e);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxRpcWebServiceInvocationTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxRpcWebServiceInvocationTest.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxRpcWebServiceInvocationTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxRpcWebServiceInvocationTest.java Wed Apr 25 22:16:33 2007
@@ -116,7 +116,7 @@
Method echoMethod = EchoServiceEndpoint.class.getMethod("echo", String.class);
- String value = (String)container.invoke("EchoBean", echoMethod, args, null);
+ String value = (String) container.invoke("EchoBean", echoMethod.getDeclaringClass(), echoMethod, args, null);
assertCalls(Call.values());
calls.clear();
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxWsWebServiceInvocationTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxWsWebServiceInvocationTest.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxWsWebServiceInvocationTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/JaxWsWebServiceInvocationTest.java Wed Apr 25 22:16:33 2007
@@ -49,7 +49,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Arrays;
-import java.util.Iterator;
import java.lang.reflect.Method;
/**
@@ -121,7 +120,7 @@
Method echoMethod = EchoServiceEndpoint.class.getMethod("echo", String.class);
- String value = (String)container.invoke("EchoBean", echoMethod, args, null);
+ String value = (String) container.invoke("EchoBean", echoMethod.getDeclaringClass(), echoMethod, args, null);
assertCalls(Call.values());
calls.clear();
@@ -188,12 +187,12 @@
}
// test @Resource WebServiceContext injection
- junit.framework.Assert.assertNotNull("web service context should not be null", wsContext);
+ junit.framework.Assert.assertNotNull("web service context should not be null", wsContext);
junit.framework.Assert.assertEquals("msg context should be the smae", messageContext, wsContext.getMessageContext());
-
+
junit.framework.Assert.assertFalse("user in role 'foo'", wsContext.isUserInRole("foo"));
junit.framework.Assert.assertNull("user principal", wsContext.getUserPrincipal());
-
+
calls.add(Call.Bean_Invoke_BEFORE);
Object o = context.proceed();
calls.add(Call.Bean_Invoke_AFTER);
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Wed Apr 25 22:16:33 2007
@@ -53,7 +53,7 @@
public void testPojoStyleBean() throws Exception {
- Object result = container.invoke("widget", Widget.class.getMethod("getLifecycle"), new Object[]{}, null);
+ Object result = container.invoke("widget", Widget.class, Widget.class.getMethod("getLifecycle"), new Object[]{}, null);
assertTrue("instance of Stack", result instanceof Stack);
Stack<Lifecycle> actual = (Stack<Lifecycle>) result;
Modified: incubator/openejb/trunk/openejb3/examples/moviefun/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/examples/moviefun/src/main/webapp/WEB-INF/web.xml?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/examples/moviefun/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/openejb/trunk/openejb3/examples/moviefun/src/main/webapp/WEB-INF/web.xml Wed Apr 25 22:16:33 2007
@@ -6,11 +6,11 @@
<servlet>
<servlet-name>loader</servlet-name>
- <servlet-class>org.openejb.loader.LoaderServlet</servlet-class>
+ <servlet-class>org.apache.openejb.loader.LoaderServlet</servlet-class>
<init-param>
<param-name>openejb.home</param-name>
- <param-value>/Users/dblevins/work/openejb1/target/openejb-1.0-SNAPSHOT</param-value>
+ <param-value>/Users/dblevins/work/openejb3/assembly-standalone/target/openejb-3.0-SNAPSHOT-incubating</param-value>
</init-param>
<init-param>
Modified: incubator/openejb/trunk/openejb3/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/EjbContainerProvider.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/EjbContainerProvider.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/EjbContainerProvider.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/EjbContainerProvider.java Wed Apr 25 22:16:33 2007
@@ -71,7 +71,7 @@
this.ejbDeployment = ejbDeployment;
this.handlerInfos = handlerInfos;
}
-
+
public void processMessage(MessageContext msgContext, SOAPEnvelope reqEnv, SOAPEnvelope resEnv, Object obj) throws Exception {
RPCElement body = getBody(reqEnv, msgContext);
@@ -88,8 +88,9 @@
Object[] arguments = {msgContext, interceptor};
- Object result = container.invoke(ejbDeployment.getDeploymentID(), operation.getMethod(), arguments, null);
-
+ Class callInterface = ejbDeployment.getServiceEndpointInterface();
+ Object result = container.invoke(ejbDeployment.getDeploymentID(), callInterface, operation.getMethod(), arguments, null);
+
interceptor.createResult(result);
} catch (InvalidateReferenceException e) {
interceptor.createExceptionResult(e.getCause());
@@ -119,7 +120,7 @@
this.messageContext = msgContext;
this.operation = operation;
}
-
+
@AroundInvoke
public Object intercept(InvocationContext context) throws Exception {
HandlerChain handlerChain = new HandlerChainImpl(handlerInfos);
@@ -151,10 +152,10 @@
}
handlerChain.handleResponse(messageContext);
-
+
if (!handlerChain.isEmpty()) {
- /*
- * Deserialize the result value from soap msg as handers could have
+ /*
+ * Deserialize the result value from soap msg as handers could have
* changed it.
*/
try {
@@ -169,7 +170,7 @@
handlerChain.destroy();
}
}
-
+
public Object[] getArguments() {
try {
return demarshallArguments();
@@ -177,7 +178,7 @@
throw (IllegalStateException) new IllegalStateException("Cannot demarshal the soap parts into arguments").initCause(e);
}
}
-
+
private Object[] demarshallArguments() throws Exception {
SOAPMessage message = messageContext.getMessage();
messageContext.setProperty(org.apache.axis.SOAPPart.ALLOW_FORM_OPTIMIZATION, Boolean.TRUE);
@@ -205,7 +206,7 @@
for (int i = 0; i < args.size(); i++) {
RPCParam rpcParam = (RPCParam) args.get(i);
Object value = rpcParam.getObjectValue();
-
+
ParameterDesc paramDesc = rpcParam.getParamDesc();
if (paramDesc != null && paramDesc.getJavaType() != null) {
@@ -223,7 +224,7 @@
private Object demarshallResult() throws Exception {
Message resMsg = messageContext.getResponseMessage();
-
+
/*
* This is not the most efficient way to deserialize the result
* but could not find better or more reliable way to do this.
@@ -231,17 +232,17 @@
ByteArrayOutputStream out = new ByteArrayOutputStream();
resMsg.writeTo(out);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-
- DeserializationContext dser =
+
+ DeserializationContext dser =
new DeserializationContext(new InputSource(in), resMsg.getMessageContext(), null);
dser.parse();
SOAPEnvelope responseEnvelope = dser.getEnvelope();
-
+
SOAPBodyElement bodyEl = responseEnvelope.getFirstBody();
if (bodyEl == null) {
return null;
}
-
+
QName returnType = operation.getReturnType();
if (XMLType.AXIS_VOID.equals(returnType)) {
return null;
@@ -290,7 +291,7 @@
if (operation.getReturnClass() != null) {
result = JavaUtils.convert(result, operation.getReturnClass());
}
-
+
return result;
}
@@ -315,7 +316,7 @@
public void createExceptionResult(Throwable exception) {
messageContext.setPastPivot(true);
-
+
AxisFault axisFault = null;
if (exception instanceof Exception) {
axisFault = AxisFault.makeFault((Exception)exception);
@@ -323,7 +324,7 @@
} else {
axisFault = new AxisFault("Server", "Server Error", null, null);
}
-
+
SOAPFault fault = new SOAPFault(axisFault);
SOAPEnvelope envelope = new SOAPEnvelope();
envelope.addBodyElement(fault);
Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java?view=diff&rev=532612&r1=532611&r2=532612
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/EjbRequestHandler.java Wed Apr 25 22:16:33 2007
@@ -23,8 +23,6 @@
import java.util.Collection;
import javax.ejb.EJBAccessException;
-import javax.ejb.EJBHome;
-import javax.ejb.EJBObject;
import org.apache.openejb.DeploymentInfo;
import org.apache.openejb.ProxyInfo;
@@ -196,7 +194,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -210,7 +208,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -224,7 +222,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -246,7 +244,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -322,7 +320,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -344,7 +342,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);
@@ -358,7 +356,7 @@
RpcContainer c = (RpcContainer) call.getDeploymentInfo().getContainer();
Object result = c.invoke(req.getDeploymentId(),
- req.getMethodInstance(),
+ req.getMethodClass(), req.getMethodInstance(),
req.getMethodParameters(),
req.getPrimaryKey()
);