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/17 05:50:27 UTC

svn commit: r529479 - in /incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb: ./ core/cmp/ core/entity/ core/ivm/ core/stateful/ core/stateless/

Author: dblevins
Date: Mon Apr 16 20:50:26 2007
New Revision: 529479

URL: http://svn.apache.org/viewvc?view=rev&rev=529479
Log:
Cleaned up construction of ProxyInfo in containers and elsewhere.  Containers now do not detail the aspects of the interfaces and only note the deployment info and the primary key.

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.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/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/stateful/StatefulContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java?view=diff&rev=529479&r1=529478&r2=529479
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/ProxyInfo.java Mon Apr 16 20:50:26 2007
@@ -23,45 +23,32 @@
 
     protected DeploymentInfo deploymentInfo;
     protected Object primaryKey;
-    protected List<Class> proxyInterface;
+    protected List<Class> proxyInterfaces;
     protected RpcContainer beanContainer;
     protected InterfaceType interfaceType;
 
     protected ProxyInfo() {
     }
 
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, RpcContainer container) {
-        this(depInfo, pk, container, InterfaceType.UNKNOWN);
-    }
-
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, Class intrfc, RpcContainer container, InterfaceType proxyType) {
-        this(depInfo, pk, asList(intrfc), container, proxyType);
-    }
-
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, RpcContainer container, InterfaceType proxyType) {
-        this(depInfo, pk, new ArrayList<Class>(), container, proxyType);
-    }
-
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, List<Class> intrfc, RpcContainer container, InterfaceType proxyType) {
-        this.deploymentInfo = depInfo;
-        this.primaryKey = pk;
-        this.proxyInterface = intrfc;
+    public ProxyInfo(DeploymentInfo deploymentInfo, Object primaryKey, List<Class> interfaces, InterfaceType proxyType) {
+        this.deploymentInfo = deploymentInfo;
+        this.primaryKey = primaryKey;
+        this.proxyInterfaces = interfaces;
         this.interfaceType = proxyType;
-        this.beanContainer = container;
-    }
-
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, List<Class> intrfc, RpcContainer container) {
-        this(depInfo, pk, intrfc, container, InterfaceType.UNKNOWN);
-    }
-
-    public ProxyInfo(DeploymentInfo depInfo, Object pk, Class intrfc, RpcContainer container) {
-        this(depInfo, pk, asList(intrfc), container);
+        this.beanContainer = (RpcContainer) deploymentInfo.getContainer();
     }
 
-    private static List asList(Object object){
-        List list = new ArrayList();
-        list.add(object);
-        return list;
+    /**
+     * This is the constructor that containers should call.
+     * Containers do not know the list of interfaces that should
+     * be applied nor do they need to tell the proxy handling
+     * code what kind of proxy it should create.
+     * 
+     * @param depInfo
+     * @param pk
+     */
+    public ProxyInfo(DeploymentInfo depInfo, Object pk) {
+        this(depInfo, pk, new ArrayList<Class>(), InterfaceType.UNKNOWN);
     }
 
     public InterfaceType getInterfaceType() {
@@ -77,11 +64,11 @@
     }
 
     public Class getInterface() {
-        return proxyInterface.get(0);
+        return proxyInterfaces.get(0);
     }
 
     public List<Class> getInterfaces() {
-        return proxyInterface;
+        return proxyInterfaces;
     }
 
     public RpcContainer getBeanContainer() {

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Mon Apr 16 20:50:26 2007
@@ -673,7 +673,7 @@
             txPolicy.afterInvoke(bean, txContext);
         }
 
-        return new ProxyInfo(deploymentInfo, primaryKey, this);
+        return new ProxyInfo(deploymentInfo, primaryKey);
     }
 
     private Object findByPrimaryKey(Method callMethod, Object[] args, ThreadContext callContext) throws OpenEJBException {
@@ -695,12 +695,8 @@
             KeyGenerator kg = deploymentInfo.getKeyGenerator();
             Object primaryKey = kg.getPrimaryKey(bean);
 
-            // Determine the proxy type
-            Class<?> callingClass = callMethod.getDeclaringClass();
-            List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
             // create a new ProxyInfo based on the deployment info and primary key
-            return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+            return new ProxyInfo(deploymentInfo, primaryKey);
         } catch (javax.ejb.FinderException fe) {
             txPolicy.handleApplicationException(fe, false, txContext);
         } catch (Throwable e) {// handle reflection exception
@@ -725,9 +721,6 @@
 
             KeyGenerator kg = deploymentInfo.getKeyGenerator();
 
-            Class<?> callingClass = callMethod.getDeclaringClass();
-            List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
             // The following block of code is responsible for returning ProxyInfo object(s) for each
             // matching entity bean found by the query.  If its a multi-value find operation a Vector
             // of ProxyInfo objects will be returned. If its a single-value find operation then a
@@ -744,7 +737,7 @@
                         Object primaryKey = kg.getPrimaryKey(bean);
 
                         // create a new ProxyInfo based on the deployment info and primary key and add it to the vector
-                        proxies.add(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+                        proxies.add(new ProxyInfo(deploymentInfo, primaryKey));
                     }
                 }
                 if (callMethod.getReturnType() == Enumeration.class) {
@@ -763,7 +756,7 @@
                     return null;
                 } else {
                     Object primaryKey = kg.getPrimaryKey(bean);
-                    return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+                    return new ProxyInfo(deploymentInfo, primaryKey);
                 }
             }
         } catch (javax.ejb.FinderException fe) {

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Mon Apr 16 20:50:26 2007
@@ -412,10 +412,7 @@
             txPolicy.afterInvoke(bean, txContext);
         }
 
-        // return a proxy to the bean
-        Class callingClass = callMethod.getDeclaringClass();
-        List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-        return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+        return new ProxyInfo(deploymentInfo, primaryKey);
 
     }
 
@@ -426,9 +423,6 @@
         Method runMethod = deploymentInfo.getMatchingBeanMethod(callMethod);
         Object returnValue = invoke(callMethod, runMethod, args, callContext);
 
-        Class callingClass = callMethod.getDeclaringClass();
-        List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-
         /*
         * Find operations return either a single primary key or a collection of primary keys.
         * The primary keys are converted to ProxyInfo objects.
@@ -438,7 +432,7 @@
             Vector<ProxyInfo> proxies = new Vector<ProxyInfo>();
             while (keys.hasNext()) {
                 Object primaryKey = keys.next();
-                proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+                proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey));
             }
             returnValue = proxies;
         } else if (returnValue instanceof java.util.Enumeration) {
@@ -446,11 +440,11 @@
             Vector<ProxyInfo> proxies = new Vector<ProxyInfo>();
             while (keys.hasMoreElements()) {
                 Object primaryKey = keys.nextElement();
-                proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this));
+                proxies.addElement(new ProxyInfo(deploymentInfo, primaryKey));
             }
             returnValue = new org.apache.openejb.util.ArrayEnumeration(proxies);
         } else
-            returnValue = new ProxyInfo(deploymentInfo, returnValue, objectInterface, this);
+            returnValue = new ProxyInfo(deploymentInfo, returnValue);
 
         return returnValue;
     }

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Apr 16 20:50:26 2007
@@ -286,7 +286,7 @@
     }
 
     public org.apache.openejb.ProxyInfo getProxyInfo() {
-        return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), null, getDeploymentInfo().getHomeInterface(), container, interfaceType);
+        return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), null, getDeploymentInfo().getInterfaces(interfaceType), interfaceType);
     }
 
     protected Object _writeReplace(Object proxy) throws ObjectStreamException {

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Mon Apr 16 20:50:26 2007
@@ -164,7 +164,7 @@
     }
 
     public org.apache.openejb.ProxyInfo getProxyInfo() {
-        return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), primaryKey, getDeploymentInfo().getInterfaces(interfaceType), container, interfaceType);
+        return new org.apache.openejb.ProxyInfo(getDeploymentInfo(), primaryKey, interfaces, interfaceType);
     }
 
     protected Object _writeReplace(Object proxy) throws ObjectStreamException {

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Mon Apr 16 20:50:26 2007
@@ -294,9 +294,7 @@
 
             instanceManager.poolInstance(primaryKey, instance);
 
-            Class callingClass = callMethod.getDeclaringClass();
-            List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-            return new ProxyInfo(deploymentInfo, primaryKey, objectInterface, this);
+            return new ProxyInfo(deploymentInfo, primaryKey);
         } finally {
             ThreadContext.exit(oldCallContext);
         }

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=529479&r1=529478&r2=529479
==============================================================================
--- 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 Mon Apr 16 20:50:26 2007
@@ -270,9 +270,7 @@
     }
 
     protected ProxyInfo createEJBObject(org.apache.openejb.core.CoreDeploymentInfo deploymentInfo, Method callMethod) {
-        Class callingClass = callMethod.getDeclaringClass();
-        List<Class> objectInterface = deploymentInfo.getObjectInterface(callingClass);
-        return new ProxyInfo(deploymentInfo, null, objectInterface, this);
+        return new ProxyInfo(deploymentInfo, null);
     }
 
     public void discardInstance(Object instance, ThreadContext context) {