You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/03/28 01:07:57 UTC

svn commit: r523109 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/test/java/org/apache/openejb/ container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/ itests/openejb-itests-beans/src/main/java/org/apache/openejb/test...

Author: dain
Date: Tue Mar 27 16:07:56 2007
New Revision: 523109

URL: http://svn.apache.org/viewvc?view=rev&rev=523109
Log:
Fixed bug where remote client entity home proxies would eat the remove method invocation
Allowed operation now tests CMP ejbStore
ejbStore is only called if the CMP is modified, so we now modify the bean when the business method is called

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/iTest.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/itest-2.2-orm.xml
    incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmp2Bean.java
    incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmpBean.java
    incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml
    incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp/CmpAllowedOperationsTests.java
    incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp2/Cmp2AllowedOperationsTests.java
    incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBHomeHandler.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/iTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/iTest.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/iTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/iTest.java Tue Mar 27 16:07:56 2007
@@ -20,10 +20,10 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 import org.apache.openejb.test.TestManager;
-import org.apache.openejb.test.mdb.MdbTestSuite;
 import org.apache.openejb.test.entity.bmp.BmpLocalTestSuite;
 import org.apache.openejb.test.entity.cmp.CmpLocalTestSuite;
 import org.apache.openejb.test.entity.cmp2.Cmp2TestSuite;
+import org.apache.openejb.test.mdb.MdbTestSuite;
 import org.apache.openejb.test.stateful.StatefulLocalTestSuite;
 import org.apache.openejb.test.stateless.StatelessLocalTestSuite;
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/itest-2.2-orm.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/itest-2.2-orm.xml?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/itest-2.2-orm.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/resources/convert/oej2/cmp/itest-2.2/itest-2.2-orm.xml Tue Mar 27 16:07:56 2007
@@ -29,6 +29,7 @@
             <basic name="lastName"/>
             <transient name="nextId"/>
             <transient name="primaryKey"/>
+            <transient name="number"/>
             <transient name="ejbContext"/>
             <transient name="allowedOperationsTable"/>
         </attributes>

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmp2Bean.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmp2Bean.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmp2Bean.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmp2Bean.java Tue Mar 27 16:07:56 2007
@@ -46,6 +46,10 @@
 
     public abstract void setLastName(String lastName);
 
+    public abstract int getNumber();
+
+    public abstract void setNumber(int number);
+
 
     //=============================
     // Home interface methods
@@ -91,6 +95,7 @@
      */
     public String businessMethod(String text) {
         testAllowedOperations("businessMethod");
+        setNumber(getNumber() + 1);
         StringBuffer b = new StringBuffer(text);
         return b.reverse().toString();
     }

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmpBean.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmpBean.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmpBean.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/java/org/apache/openejb/test/entity/cmp/AllowedOperationsCmpBean.java Tue Mar 27 16:07:56 2007
@@ -42,6 +42,7 @@
     public Integer primaryKey;
     public String firstName;
     public String lastName;
+    public int number;
     public EntityContext ejbContext;
     public static Map<String,OperationsPolicy> allowedOperationsTable = new TreeMap<String,OperationsPolicy>();
     
@@ -98,6 +99,7 @@
      */
     public String businessMethod(String text){
         testAllowedOperations("businessMethod");
+        number++;
         StringBuffer b = new StringBuffer(text);
         return b.reverse().toString();
     }

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-beans/src/main/resources/META-INF/ejb-jar.xml Tue Mar 27 16:07:56 2007
@@ -239,6 +239,9 @@
       <cmp-field>
         <field-name>lastName</field-name>
       </cmp-field>
+      <cmp-field>
+        <field-name>number</field-name>
+      </cmp-field>
       <env-entry>
         <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>
         <env-entry-type>java.lang.String</env-entry-type>
@@ -313,6 +316,9 @@
       </cmp-field>
       <cmp-field>
         <field-name>lastName</field-name>
+      </cmp-field>
+      <cmp-field>
+        <field-name>number</field-name>
       </cmp-field>
       <env-entry>
         <env-entry-name>stateless/references/JNDI_access_to_java_comp_env</env-entry-name>

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp/CmpAllowedOperationsTests.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp/CmpAllowedOperationsTests.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp/CmpAllowedOperationsTests.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp/CmpAllowedOperationsTests.java Tue Mar 27 16:07:56 2007
@@ -177,11 +177,8 @@
       
       ejbHome.sum(1, 2); 
                 
-      ejbObject = (BasicCmpObject)ejbHandle.getEJBObject();
-     
-      ejbHome.findByPrimaryKey((Integer)ejbObject.getPrimaryKey());
-      ejbHome.remove(ejbObject.getPrimaryKey());
-      
+      ejbObject.remove();
+
       ejbObject = ejbHome.createObject("Fourth Bean");
       ejbHome.findEmptyCollection(); 
     } 
@@ -612,8 +609,7 @@
      * ______________________|__________________________________________________
      * </PRE>
      */
-    // todo store is never called
-    public void TODO_test13_ejbStore(){
+    public void test13_ejbStore(){
         try{
             
         OperationsPolicy policy = new OperationsPolicy();

Modified: incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp2/Cmp2AllowedOperationsTests.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp2/Cmp2AllowedOperationsTests.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp2/Cmp2AllowedOperationsTests.java (original)
+++ incubator/openejb/trunk/openejb3/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/entity/cmp2/Cmp2AllowedOperationsTests.java Tue Mar 27 16:07:56 2007
@@ -541,8 +541,7 @@
      * ______________________|__________________________________________________
      * </PRE>
      */
-    // todo store is never called
-    public void TODO_test13_ejbStore() {
+    public void test13_ejbStore() {
         try {
 
             OperationsPolicy policy = new OperationsPolicy();

Modified: incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBHomeHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBHomeHandler.java?view=diff&rev=523109&r1=523108&r2=523109
==============================================================================
--- incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBHomeHandler.java (original)
+++ incubator/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/EntityEJBHomeHandler.java Tue Mar 27 16:07:56 2007
@@ -38,7 +38,6 @@
         req.setMethodInstance(method);
         req.setDeploymentCode(ejb.deploymentCode);
         req.setDeploymentId(ejb.deploymentID);
-        req.setPrimaryKey(primaryKey);
 
         EJBResponse res = request(req);
 
@@ -92,27 +91,68 @@
     }
 
     protected Object removeByPrimaryKey(Method method, Object[] args, Object proxy) throws Throwable {
-
         Object primKey = args[0];
 
         if (primKey == null) throw new NullPointerException("The primary key is null.");
 
-        /* 
-         * This operation takes care of invalidating all the EjbObjectProxyHanders 
-         * associated with the same RegistryId. See this.createProxy().
-         */
-        invalidateAllHandlers(ejb.deploymentID + ":" + primKey);
-        return null;
+        EJBRequest req = new EJBRequest(RequestMethodConstants.EJB_HOME_REMOVE_BY_PKEY);
+
+        req.setMethodParameters(args);
+        req.setMethodInstance(method);
+        req.setDeploymentCode(ejb.deploymentCode);
+        req.setDeploymentId(ejb.deploymentID);
+        req.setPrimaryKey(primKey);
+
+        EJBResponse res = request(req);
+
+        switch (res.getResponseCode()) {
+            case ResponseCodes.EJB_ERROR:
+                throw new SystemError((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_SYS_EXCEPTION:
+                throw new SystemException((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_APP_EXCEPTION:
+                throw new ApplicationException((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_OK:
+                invalidateAllHandlers(ejb.deploymentID + ":" + primKey);
+                return null;
+            default:
+                throw new RemoteException("Received invalid response code from server: " + res.getResponseCode());
+        }
     }
 
     protected Object removeWithHandle(Method method, Object[] args, Object proxy) throws Throwable {
-
         if (args[0] == null) throw new RemoteException("Handler is null");
 
         Handle handle = (Handle) args[0];
+
         EJBObject ejbObject = handle.getEJBObject();
-        ejbObject.remove();
-        return null;
-    }
+        if (ejbObject == null) throw new NullPointerException("The handle.getEJBObject() is null.");
+
+        Object primKey = ejbObject.getPrimaryKey();
+        if (primKey == null) throw new NullPointerException("The handle.getEJBObject().getPrimaryKey() is null.");
+
+        EJBRequest req = new EJBRequest(RequestMethodConstants.EJB_HOME_REMOVE_BY_HANDLE);
 
+        req.setMethodParameters(args);
+        req.setMethodInstance(method);
+        req.setDeploymentCode(ejb.deploymentCode);
+        req.setDeploymentId(ejb.deploymentID);
+        req.setPrimaryKey(primKey);
+
+        EJBResponse res = request(req);
+
+        switch (res.getResponseCode()) {
+            case ResponseCodes.EJB_ERROR:
+                throw new SystemError((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_SYS_EXCEPTION:
+                throw new SystemException((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_APP_EXCEPTION:
+                throw new ApplicationException((ThrowableArtifact) res.getResult());
+            case ResponseCodes.EJB_OK:
+                invalidateAllHandlers(ejb.deploymentID + ":" + primKey);
+                return null;
+            default:
+                throw new RemoteException("Received invalid response code from server: " + res.getResponseCode());
+        }
+    }
 }