[jboss-cvs] JBossAS SVN: r69072 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/ejb3 and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 17 08:38:35 EST 2008
Author: alex.loubyansky at jboss.com
Date: 2008-01-17 08:38:35 -0500 (Thu, 17 Jan 2008)
New Revision: 69072
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
Log:
JBMETA-4
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java 2008-01-17 13:32:35 UTC (rev 69071)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/AnnotationMergedView.java 2008-01-17 13:38:35 UTC (rev 69072)
@@ -102,29 +102,29 @@
}
}
}
+
// First get the annotation beans without an xml entry
- HashSet<String> names = new HashSet<String>();
if(annotation != null)
{
for(EnterpriseBeanMetaData bean : annotation)
{
- // This is either the ejb-name or the ejb-class simple name
- EnterpriseBeanMetaData match = null;
if(xml != null)
{
+ // This is either the ejb-name or the ejb-class simple name
String ejbName = bean.getEjbName();
- match = xml.get(ejbName);
+ EnterpriseBeanMetaData match = xml.get(ejbName);
if(match == null)
{
// Lookup by the unqualified ejb class
- String name = ejbClassToName.get(ejbName);
- if(name == null)
- {
- names.add(ejbName);
+ String xmlEjbName = ejbClassToName.get(ejbName);
+ if(xmlEjbName == null)
merged.add(bean);
- }
}
}
+ else
+ {
+ merged.add(bean);
+ }
}
}
// Now merge the xml and annotations
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-01-17 13:32:35 UTC (rev 69071)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-01-17 13:38:35 UTC (rev 69072)
@@ -56,6 +56,7 @@
import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
import org.jboss.metadata.ejb.spec.InitMethodMetaData;
@@ -516,20 +517,37 @@
EjbJar3xMetaData merged = new EjbJar30MetaData();
AnnotationMergedView.merge(merged, specMetaData, metaData);
- // Validate the merged InterMediateBean
- EnterpriseBeanMetaData InterMediateBean = merged.getEnterpriseBean("InterMediateBean");
- assertNotNull(InterMediateBean);
- assertEquals("org.jboss.test.metadata.annotation.ejb3.runas.InterMediate", InterMediateBean.getEjbClass());
- assertTrue(InterMediateBean instanceof SessionBeanMetaData);
- SessionBeanMetaData sInterMediateBean = (SessionBeanMetaData) InterMediateBean;
- assertEquals(SessionType.Stateless, sInterMediateBean.getSessionType());
- SecurityIdentityMetaData identity = sInterMediateBean.getSecurityIdentity();
- assertNotNull(identity);
- RunAsMetaData runAs = identity.getRunAs();
- assertNotNull(runAs);
- assertEquals("InternalUser", runAs.getRoleName());
+ EnterpriseBeanMetaData enterpriseBean = merged.getEnterpriseBean("InterMediateBean");
+ assertNotNull(enterpriseBean);
+ assertInterMediateBean(enterpriseBean);
}
-
+
+ /**
+ * Test merging annotation based metadata without xml
+ * @throws Exception
+ */
+ public void testAnnotationMergedViewWithNoXml()
+ throws Exception
+ {
+ Class<?>[] beanClasses = {
+ MyStatelessBean.class
+ };
+ List<Class<?>> classes = Arrays.asList(beanClasses);
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ EjbJar30Creator creator = new EjbJar30Creator(finder);
+ EjbJar30MetaData metaData = creator.create(classes);
+ EjbJar3xMetaData specMetaData = new EjbJar30MetaData();
+ EjbJar3xMetaData merged = new EjbJar30MetaData();
+ AnnotationMergedView.merge(merged, specMetaData, metaData);
+
+ EnterpriseBeansMetaData beans = merged.getEnterpriseBeans();
+ assertNotNull(beans);
+ assertEquals(1, beans.size());
+ EnterpriseBeanMetaData bean = beans.get("MyStatelessBean");
+ assertNotNull(bean);
+ assertMyStatelessBean(bean);
+ }
+
@SuppressWarnings("unchecked")
@ScanPackage("org.jboss.test.metadata.annotation.ejb3.multiview")
public void testMultiview() throws Exception
@@ -676,4 +694,19 @@
assertEquals("StatefulBean-jndi-name", sfbean.getJndiName());
assertTrue(sfbean.isStateful());
}
+
+ private void assertInterMediateBean(EnterpriseBeanMetaData interMediateBean)
+ {
+ // Validate the merged InterMediateBean
+ assertNotNull(interMediateBean);
+ assertEquals("org.jboss.test.metadata.annotation.ejb3.runas.InterMediate", interMediateBean.getEjbClass());
+ assertTrue(interMediateBean instanceof SessionBeanMetaData);
+ SessionBeanMetaData sInterMediateBean = (SessionBeanMetaData) interMediateBean;
+ assertEquals(SessionType.Stateless, sInterMediateBean.getSessionType());
+ SecurityIdentityMetaData identity = sInterMediateBean.getSecurityIdentity();
+ assertNotNull(identity);
+ RunAsMetaData runAs = identity.getRunAs();
+ assertNotNull(runAs);
+ assertEquals("InternalUser", runAs.getRoleName());
+ }
}
More information about the jboss-cvs-commits
mailing list