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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 28 17:22:41 EST 2007


Author: bstansberry at jboss.com
Date: 2007-11-28 17:22:41 -0500 (Wed, 28 Nov 2007)
New Revision: 67576

Added:
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xEverything_testBeanOnlyInJBoss.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testBeanOnlyInJBoss.xml
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
Log:
[JBAS-5018] Support bean declarations only in jboss.xml

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2007-11-28 22:14:19 UTC (rev 67575)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java	2007-11-28 22:22:41 UTC (rev 67576)
@@ -144,6 +144,18 @@
             mergedEJB.merge(jejb, ejb, overridenFile, overrideFile, mustOverride);
             this.add(mergedEJB);
          }
+         
+         // Add any beans only declared in the override
+         if (override != null)
+         {
+            for(JBossEnterpriseBeanMetaData jejb : override)
+            {
+               if (this.get(jejb.getEjbName()) == null)
+               {
+                  this.add((JBossEnterpriseBeanMetaData) jejb.clone());
+               }
+            }
+         }
       }
    }
 

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2007-11-28 22:14:19 UTC (rev 67575)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2007-11-28 22:22:41 UTC (rev 67576)
@@ -38,6 +38,7 @@
 import org.jboss.metadata.ejb.jboss.JBoss50DTDMetaData;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -46,6 +47,7 @@
 import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
 import org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 
@@ -173,7 +175,44 @@
       assertNotNull(ebsmd);  
       assertNotNull(specResult.getEnterpriseBean("BusinessBean")); 
    }
+   
+   /**
+    * Tests that merge of ejb-jar.xml and jboss.xml preserves beans
+    * that only exist in jboss.xml.
+    * 
+    * @throws Exception
+    */
+   public void testBeanOnlyInJBoss() throws Exception
+   {
+      EjbJarMetaData ejbJarMetaData = unmarshal("EjbJar3xEverything_testBeanOnlyInJBoss.xml", EjbJar30MetaData.class, null);
+      JBossMetaData jbossMetaData = unmarshal("JBoss5xEverything_testBeanOnlyInJBoss.xml", JBoss50MetaData.class, null);
+      // Create a merged view
+      JBossMetaData mergedMetaData = new JBossMetaData();
+      mergedMetaData.merge(jbossMetaData, ejbJarMetaData);      
 
+      JBossEnterpriseBeansMetaData beans = mergedMetaData.getEnterpriseBeans();
+      assertNotNull(beans);
+      assertEquals(3, beans.size());
+      
+      JBossEnterpriseBeanMetaData bean = beans.get("session0EjbName");
+      assertNotNull(bean);
+      DescriptionGroupMetaData descGroup = bean.getDescriptionGroup();
+      assertNotNull(descGroup);
+      assertEquals("en-session0-desc", descGroup.getDescription());
+      
+      bean = beans.get("session1EjbName");
+      assertNotNull(bean);
+      descGroup = bean.getDescriptionGroup();
+      assertNotNull(descGroup);
+      assertEquals("en-session1-desc", descGroup.getDescription());
+      
+      bean = beans.get("session2EjbName");
+      assertNotNull(bean);
+      descGroup = bean.getDescriptionGroup();
+      assertNotNull(descGroup);
+      assertEquals("en-session2-override", descGroup.getDescription());
+   }
+
    private Collection<Class<?>> loadClassesFromCurrentClassDir()
    {
       // In real life the deployer will pass probably pass a class scanner

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xEverything_testBeanOnlyInJBoss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xEverything_testBeanOnlyInJBoss.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/EjbJar3xEverything_testBeanOnlyInJBoss.xml	2007-11-28 22:22:41 UTC (rev 67576)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+         version="3.0"
+         metadata-complete="true"
+         id="ejb-jar-id">
+         
+   <enterprise-beans>
+      
+      <!-- A bean that only exists here, not in jboss.xml -->
+      <session>
+         <description>en-session0-desc</description>
+         <ejb-name>session0EjbName</ejb-name>
+      </session>
+      
+      <!-- A bean that also exists in jboss.xml -->
+      <session id="session2-id">      
+         <description>en-session2-desc</description>
+         <ejb-name>session2EjbName</ejb-name>
+      </session>
+   </enterprise-beans>
+   
+</ejb-jar>
\ No newline at end of file

Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testBeanOnlyInJBoss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testBeanOnlyInJBoss.xml	                        (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ejb/JBoss5xEverything_testBeanOnlyInJBoss.xml	2007-11-28 22:22:41 UTC (rev 67576)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id: JBoss5xEverything_testEverything.xml 67097 2007-11-14 21:23:18Z alex.loubyansky at jboss.com $ -->
+<jboss xmlns="http://www.jboss.com/xml/ns/javaee"
+       xmlns:jee="http://java.sun.com/xml/ns/javaee"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+       version="5.0"
+       id="jboss-id">
+         
+   <enterprise-beans>
+      
+      <!-- A bean that only exists here, not in ejb-jar.xml -->
+      <session>
+         <description>en-session1-desc</description>
+         <ejb-name>session1EjbName</ejb-name>
+      </session>
+      
+      <!-- A bean that we override from ejb-jar.xml -->
+      <session id="session2-id">      
+         <description>en-session2-override</description>
+         <ejb-name>session2EjbName</ejb-name>
+      </session>
+      
+   </enterprise-beans>
+         
+</jboss>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list