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 2006/12/12 03:11:43 UTC
svn commit: r485979 - in
/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb:
InterfaceType.java core/ivm/EjbHomeProxyHandler.java
Author: dblevins
Date: Mon Dec 11 18:11:42 2006
New Revision: 485979
URL: http://svn.apache.org/viewvc?view=rev&rev=485979
Log:
Fixed issue with createFoo style interfaces on local homes
Modified:
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InterfaceType.java
incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InterfaceType.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InterfaceType.java?view=diff&rev=485979&r1=485978&r2=485979
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InterfaceType.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/InterfaceType.java Mon Dec 11 18:11:42 2006
@@ -29,5 +29,49 @@
BUSINESS_REMOTE,
BUSINESS_REMOTE_HOME,
SERVICE_ENDPOINT,
- UNKNOWN
+ UNKNOWN;
+
+ public boolean isHome() {
+ switch(this){
+ case EJB_HOME: return true;
+ case EJB_LOCAL_HOME: return true;
+ }
+ return false;
+ }
+
+ public boolean isComponent() {
+ switch(this){
+ case EJB_OBJECT: return true;
+ case EJB_LOCAL: return true;
+ }
+ return false;
+ }
+
+ public boolean isBusiness() {
+ switch(this){
+ case BUSINESS_LOCAL: return true;
+ case BUSINESS_REMOTE: return true;
+ }
+ return false;
+ }
+
+ public boolean isRemote() {
+ switch(this){
+ case EJB_HOME: return true;
+ case EJB_OBJECT: return true;
+ case BUSINESS_REMOTE: return true;
+ case BUSINESS_REMOTE_HOME: return true;
+ }
+ return false;
+ }
+
+ public boolean isLocal() {
+ switch(this){
+ case EJB_LOCAL_HOME: return true;
+ case EJB_LOCAL: return true;
+ case BUSINESS_LOCAL: return true;
+ case BUSINESS_LOCAL_HOME: return true;
+ }
+ return false;
+ }
}
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=485979&r1=485978&r2=485979
==============================================================================
--- 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 Mon Dec 11 18:11:42 2006
@@ -54,9 +54,9 @@
dispatchTable.put("getHomeHandle", MethodType.HOME_HANDLE);
dispatchTable.put("remove", MethodType.REMOVE);
- if (interfaceType == InterfaceType.EJB_HOME) {
+ if (interfaceType.isHome()) {
DeploymentInfo deploymentInfo = container.getDeploymentInfo(depID);
- Class homeInterface = deploymentInfo.getHomeInterface();
+ Class homeInterface = deploymentInfo.getInterface(interfaceType);
Method[] methods = homeInterface.getMethods();
for (Method method : methods) {
if (method.getName().startsWith("create")){
@@ -74,7 +74,6 @@
}
protected Object createProxy(ProxyInfo proxyInfo) {
-
Object newProxy = null;
try {
@@ -215,6 +214,7 @@
protected Object create(Method method, Object[] args, Object proxy) throws Throwable {
ProxyInfo proxyInfo = (ProxyInfo) container.invoke(deploymentID, method, args, null, getThreadSpecificSecurityIdentity());
+ assert proxyInfo != null: "Container returned a null ProxyInfo: ContainerID="+container.getContainerID();
return createProxy(proxyInfo);
}