[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