[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