[jboss-cvs] JBossAS SVN: r77641 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/jbmeta98 and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Aug 29 05:41:46 EDT 2008


Author: emuckenhuber
Date: 2008-08-29 05:41:45 -0400 (Fri, 29 Aug 2008)
New Revision: 77641

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/NamedMethodMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml
Log:
[JBMETA-98] more on removeMethod merging

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/NamedMethodMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/NamedMethodMetaData.java	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/NamedMethodMetaData.java	2008-08-29 09:41:45 UTC (rev 77641)
@@ -91,4 +91,43 @@
          throw new IllegalArgumentException("Null methodParams");
       this.methodParams = methodParams;
    }
+   
+   public boolean equals(Object o)
+   {
+      if(this == o)
+         return true;
+      if(!(o instanceof NamedMethodMetaData))
+         return false;
+      
+      NamedMethodMetaData other = (NamedMethodMetaData) o;
+      if(this.getMethodName() == null)
+      {
+         if(this.getMethodName() != other.getMethodName())
+            return false;
+      }
+      else if(! this.getMethodName().equals(other.getMethodName()))
+         return false;
+
+      
+      if(this.methodParams == null
+            && other.methodParams == null)
+         return true;
+      
+      if(this.methodParams == null
+            && other.methodParams != null
+            && other.methodParams.isEmpty())
+         return true;
+      
+      if(other.methodParams != null
+            && this.methodParams != null
+            && this.methodParams.isEmpty())
+         return true;
+      
+      if(this.methodParams != null
+            && other.methodParams != null
+            && this.methodParams.equals(other.methodParams))
+         return true;
+      
+      return false;
+   }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java	2008-08-29 09:41:45 UTC (rev 77641)
@@ -98,6 +98,34 @@
       this.retainIfException = new Boolean(retainIfException);
    }
    
+   public boolean equals(Object o, boolean checkRetainIfException)
+   {
+      if(o == this)
+         return true;
+      
+      if(!(o instanceof RemoveMethodMetaData))
+         return false;
+
+      RemoveMethodMetaData other = (RemoveMethodMetaData) o;
+      if(this.beanMethod == null
+            || other.beanMethod == null
+            || ! this.beanMethod.equals(other.beanMethod))
+         return false;
+      
+      if(checkRetainIfException
+            && this.retainIfException != other.retainIfException)
+         return false;
+      
+      return true;
+   }
+
+   
+   /**
+    * merge the retainIfException
+    * 
+    * @param override
+    * @param original
+    */
    public void mergeRetainifException(RemoveMethodMetaData override, RemoveMethodMetaData original)
    {
       // JBMETA-98 - merge retainIfException

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java	2008-08-29 09:41:45 UTC (rev 77641)
@@ -46,13 +46,6 @@
    
    public void merge(RemoveMethodsMetaData override, RemoveMethodsMetaData original)
    {
-      Map<String, RemoveMethodMetaData> tmp = new HashMap<String, RemoveMethodMetaData>();
-      if(original != null)
-      {
-         for(RemoveMethodMetaData remove : original)
-            tmp.put(remove.getBeanMethod().getMethodName(), remove);
-      }
-      
       if(override != null)
       {
          if(original != null)
@@ -60,7 +53,7 @@
             for(RemoveMethodMetaData overrideMethod : override)
             {
                RemoveMethodMetaData merged = new RemoveMethodMetaData();
-               RemoveMethodMetaData originalMethod = tmp.get(overrideMethod.getBeanMethod().getMethodName());
+               RemoveMethodMetaData originalMethod = findRemoveMethod(overrideMethod, original);
                if(overrideMethod.getId() != null)
                   merged.setId(overrideMethod.getId());
                else if(originalMethod != null && originalMethod.getId() != null)
@@ -82,4 +75,18 @@
          addAll(original);
       }
    }
+   
+   private RemoveMethodMetaData findRemoveMethod(RemoveMethodMetaData removeMethod, RemoveMethodsMetaData removeMethods)
+   {
+      if(removeMethod == null || removeMethods == null) return null;
+      
+      for(RemoveMethodMetaData removeMethod2 : removeMethods)
+      {
+         if(removeMethod.equals(removeMethod2, false))
+         {
+            return removeMethod2;
+         }
+      }
+      return null;
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java	2008-08-29 09:41:45 UTC (rev 77641)
@@ -83,12 +83,26 @@
       
       JBossSessionBeanMetaData sb = (JBossSessionBeanMetaData) mergedMetaData.getEnterpriseBean("RemoveBean");
       assertNotNull(sb.getRemoveMethods());
-      assertEquals(2, sb.getRemoveMethods().size());
+      assertEquals(3, sb.getRemoveMethods().size());
+      
       RemoveMethodMetaData removeMethod = sb.getRemoveMethods().get(0);
       assertNotNull(removeMethod);
+      assertEquals("retain", removeMethod.getBeanMethod().getMethodName());
+      assertNull(removeMethod.getBeanMethod().getMethodParams());
       assertTrue(removeMethod.isRetainIfException());
+      
       removeMethod = sb.getRemoveMethods().get(1);
+      assertNotNull(removeMethod);
+      assertEquals("retain", removeMethod.getBeanMethod().getMethodName());
+      assertEquals("boolean", removeMethod.getBeanMethod().getMethodParams().get(0));
       assertFalse(removeMethod.isRetainIfException());
+
+      removeMethod = sb.getRemoveMethods().get(2);
+      assertNotNull(removeMethod);
+      assertEquals("remove2", removeMethod.getBeanMethod().getMethodName());
+      assertNull(removeMethod.getBeanMethod().getMethodParams());
+      assertFalse(removeMethod.isRetainIfException());
+      
    }
 
 

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java	2008-08-29 09:41:45 UTC (rev 77641)
@@ -37,6 +37,12 @@
    {
       //
    }
+   
+   @Remove(retainIfException = false)
+   public void retain(boolean bool)
+   {
+      //
+   }
 
    @Remove(retainIfException = true)
    public void retain()
@@ -44,5 +50,7 @@
       //
    }
    
+
+   
 }
 

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml	2008-08-29 06:45:23 UTC (rev 77640)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml	2008-08-29 09:41:45 UTC (rev 77641)
@@ -16,6 +16,17 @@
                 <retain-if-exception>true</retain-if-exception>
                 -->
             </remove-method>
+			<remove-method>
+                <bean-method>
+                    <method-name>retain</method-name>
+                    <method-params>
+                    	<method-param>boolean</method-param>
+                    </method-params>
+                </bean-method>
+                <!-- specify it in annotation
+                <retain-if-exception>true</retain-if-exception>
+                -->
+            </remove-method>
             <remove-method>
                 <bean-method>
                     <method-name>remove2</method-name>




More information about the jboss-cvs-commits mailing list