[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