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);
     }