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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 28 12:18:56 EDT 2008


Author: alex.loubyansky at jboss.com
Date: 2008-03-28 12:18:56 -0400 (Fri, 28 Mar 2008)
New Revision: 71383

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java
Log:
JBMETA-11

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-03-28 15:09:02 UTC (rev 71382)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-03-28 16:18:56 UTC (rev 71383)
@@ -895,26 +895,47 @@
       else if(soriginal != null && soriginal.getSecurityRoleRefs() != null)
          securityRoleRefs = soriginal.getSecurityRoleRefs();
 
-      // jndiName
-      if(joverride != null && joverride.getJndiName() != null)
-         jndiName = joverride.getJndiName();
-      // callByValue
       if(joverride != null)
+      {
+         // jndiName
+         if(joverride.getJndiName() != null)
+            jndiName = joverride.getJndiName();
+         // homeJndiName
+         if(joverride.homeJndiName != null)
+         {
+            if(joverride.getEjbJarMetaData().isEJB3x() ||
+               soriginal != null && soriginal.getEjbJarMetaData().isEJB3x())
+               throw new IllegalStateException(
+                  "EJB3 bean " + getEjbName() + " defines home-jndi-name '" +
+                  joverride.homeJndiName + "' in jboss.xml");
+            homeJndiName = joverride.homeJndiName;
+         }
+         // localHomeJndiName
+         if(joverride.localHomeJndiName != null)
+         {
+            if(joverride.getEjbJarMetaData().isEJB3x() ||
+               soriginal != null && soriginal.getEjbJarMetaData().isEJB3x())
+               throw new IllegalStateException(
+                  "EJB3 bean " + getEjbName() + " defines local-home-jndi-name '" +
+                  joverride.localHomeJndiName + "' in jboss.xml");
+            localHomeJndiName = joverride.localHomeJndiName;
+         }         
+         // callByValue
          callByValue = joverride.isCallByValue();
-      // clustered
-      if(joverride != null)
+         // clustered
          clustered = joverride.isClustered();
-      // remoteBindings
-      if(joverride != null && joverride.getRemoteBindings() != null)
-         remoteBindings = joverride.getRemoteBindings();
-      // clusterConfig
-      if(joverride != null && joverride.getClusterConfig() != null)
-         clusterConfig = joverride.getClusterConfig();
-      // portComponent
-      if(joverride != null && joverride.getPortComponent() != null)
-         portComponent = joverride.getPortComponent();
-      // ejbTimeoutIdentity
-      if(joverride != null && joverride.getEjbTimeoutIdentity() != null)
-         ejbTimeoutIdentity = joverride.getEjbTimeoutIdentity();
+         // remoteBindings
+         if(joverride.getRemoteBindings() != null)
+            remoteBindings = joverride.getRemoteBindings();
+         // clusterConfig
+         if(joverride.getClusterConfig() != null)
+            clusterConfig = joverride.getClusterConfig();
+         // portComponent
+         if(joverride.getPortComponent() != null)
+            portComponent = joverride.getPortComponent();
+         // ejbTimeoutIdentity
+         if(joverride.getEjbTimeoutIdentity() != null)
+            ejbTimeoutIdentity = joverride.getEjbTimeoutIdentity();
+      }
    }
 }

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	2008-03-28 15:09:02 UTC (rev 71382)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/EjbJarJBossMergeEverythingUnitTestCase.java	2008-03-28 16:18:56 UTC (rev 71383)
@@ -47,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.ejb.spec.SessionBeanMetaData;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
@@ -228,7 +229,57 @@
       assertEquals("crucialEjb", merged.getEjbRefName());
       assertEquals("CrucialLocal", merged.getLocal());
    }
-   
+
+   public void testHomeJndiNameForEJB3() throws Exception
+   {
+      EjbJar30MetaData ejbjar3 = new EjbJar30MetaData();
+      EnterpriseBeansMetaData originals = new EnterpriseBeansMetaData();
+      originals.setEjbJarMetaData(ejbjar3);
+      SessionBeanMetaData original = new SessionBeanMetaData();
+      original.setEnterpriseBeansMetaData(originals);
+      original.setEjbName("ejb3session");
+      
+      JBossMetaData jboss = new JBossMetaData();
+      JBossEnterpriseBeansMetaData overrides = new JBossEnterpriseBeansMetaData();
+      overrides.setEjbJarMetaData(jboss);
+      JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+      override.setEjbName("ejb3session");
+      override.setEnterpriseBeansMetaData(overrides);
+      override.setHomeJndiName("home-jndi-name");
+
+      JBossMetaData mergedJBoss = new JBossMetaData();
+      JBossEnterpriseBeansMetaData mergedBeans = new JBossEnterpriseBeansMetaData();
+      mergedBeans.setEjbJarMetaData(mergedJBoss);
+      
+      try
+      {
+         JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+         merged.setEnterpriseBeansMetaData(mergedBeans);
+         merged.merge(override, original);
+         fail("ejb3 session bean can't have home-jndi-name");
+      }
+      catch(IllegalStateException e)
+      {
+         assertEquals("EJB3 bean ejb3session defines home-jndi-name 'home-jndi-name' in jboss.xml", e.getMessage());
+      }
+
+      override = new JBossSessionBeanMetaData();
+      override.setEjbName("ejb3session");
+      override.setEnterpriseBeansMetaData(overrides);
+      override.setLocalHomeJndiName("local-home-jndi-name");
+      try
+      {
+         JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();      
+         merged.setEnterpriseBeansMetaData(mergedBeans);
+         merged.merge(override, original);
+         fail("ejb3 session bean can't have local-home-jndi-name");
+      }
+      catch(IllegalStateException e)
+      {
+         assertEquals("EJB3 bean ejb3session defines local-home-jndi-name 'local-home-jndi-name' in jboss.xml", e.getMessage());
+      }
+   }
+
    private Collection<Class<?>> loadClassesFromCurrentClassDir()
    {
       // In real life the deployer will pass probably pass a class scanner




More information about the jboss-cvs-commits mailing list