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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 22 22:39:04 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-07-22 22:39:03 -0400 (Tue, 22 Jul 2008)
New Revision: 76118

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScope.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScopeJBoss.xml
Log:
JBMETA-79, Use the jndi-name for ejb2x remote homes even if there is an ear deployment scope base name.

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-23 02:06:19 UTC (rev 76117)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-23 02:39:03 UTC (rev 76118)
@@ -171,6 +171,26 @@
                case BUSINESS_REMOTE :
                case REMOTE_HOME :
                   // Don't append the iface suffix for ejb2.x homes
+                  // JBMETA-79, use any explicit jndi-name/mapped-name
+                  JBossEnterpriseBeanMetaData md = summary.getBeanMD();
+                  String mappedName = md.getMappedName();
+                  if (mappedName == null || mappedName.length() == 0)
+                  {
+                     if (md.isSession())
+                     {
+                        mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
+                     }
+                     else if(md.isEntity())
+                     {
+                        mappedName = ((JBossEntityBeanMetaData) md).getJndiName();
+                     }
+                  }
+                  jndiName = mappedName;
+                  if (jndiName != null && jndiName.trim().length() > 0)
+                  {
+                     return jndiName;
+                  }
+                  // Fallback to the deployment summary base name
                   jndiName = baseJndiName;
                   break;
             }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase.java	2008-07-23 02:06:19 UTC (rev 76117)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase.java	2008-07-23 02:39:03 UTC (rev 76118)
@@ -30,6 +30,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.JBossEntityBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.BasicJndiBindingPolicy;
@@ -37,7 +38,6 @@
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DeploymentSummary;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.JbossSessionBeanJndiNameResolver;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces;
-import org.jboss.metadata.ejb.spec.EjbJar20MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar2xMetaData;
 import org.jboss.test.metadata.ejb.AbstractEJBEverythingTest;
@@ -100,8 +100,8 @@
       assertLegacyBeanMetaData(mergedMetaData);
    }
    /**
-    * JBMETA-79
-    * @param metaData
+    * JBMETA-79, validate ejb2x homes when there is a deployment scope with an
+    * ear base name.
     */
    public void testRemoteHomeWithEarScope()
       throws Exception
@@ -114,6 +114,7 @@
       mergedMetaData.merge(jbossMetaData, ejbJarMetaData);
       JBossEnterpriseBeanMetaData beanMD = mergedMetaData.getEnterpriseBean("session1EjbName");
       assertNotNull(beanMD);
+      assertTrue("beanMD is a session bean", beanMD.isSession());
       assertTrue("beanMD is a JBossSessionBeanMetaData", beanMD instanceof JBossSessionBeanMetaData);
       JBossSessionBeanMetaData sbeanMD = (JBossSessionBeanMetaData) beanMD;
       // Validate the expected metadata jndi name and remote home
@@ -124,9 +125,22 @@
       dsummary.setDeploymentName("some-ejb.jar");
       dsummary.setDeploymentScopeBaseName("some-ear");
       sbeanMD.getJBossMetaData().setDeploymentSummary(dsummary);
-      // Validate that 
+      // Validate that jboss jndi-name is what is used for the home interface
       String jndiName = sbeanMD.determineResolvedJndiName("session1Home");
       assertEquals("session1EjbName_jndi_name", jndiName);
+
+      JBossEnterpriseBeanMetaData beanMD2 = mergedMetaData.getEnterpriseBean("entity1EjbName");
+      assertTrue("beanMD is a session bean", beanMD2.isEntity());
+      assertTrue("beanMD is a JBossEntityBeanMetaData", beanMD2 instanceof JBossEntityBeanMetaData);
+      JBossEntityBeanMetaData ebeanMD = (JBossEntityBeanMetaData) beanMD2;
+      // Validate the expected metadata jndi name and remote home
+      assertEquals("entity1EjbName_jndi_name", ebeanMD.getJndiName());
+      assertEquals("entity1Home", ebeanMD.getHome());
+      // Set a DeploymentSummary with an ear scoping
+      ebeanMD.getJBossMetaData().setDeploymentSummary(dsummary);
+      // Validate that jboss jndi-name is what is used for the home interface
+      jndiName = ebeanMD.determineResolvedJndiName("entity1Home");
+      assertEquals("entity1EjbName_jndi_name", jndiName);      
    }
 
    protected void assertSessionBeans(JBossSessionBeanMetaData metaData)

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScope.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScope.xml	2008-07-23 02:06:19 UTC (rev 76117)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScope.xml	2008-07-23 02:39:03 UTC (rev 76118)
@@ -20,5 +20,17 @@
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
       </session>
+
+      <entity id="entity1Ejb">
+         <ejb-name>entity1EjbName</ejb-name>
+         <home>entity1Home</home>
+         <remote>entity1Remote</remote>
+         <local-home>entity1LocalHome</local-home>
+         <local>entity1Local</local>
+         <ejb-class>entity1Class</ejb-class>
+         <persistence-type>Container</persistence-type>
+         <prim-key-class>entity1KeyClass</prim-key-class>
+         <reentrant>false</reentrant>
+      </entity>
    </enterprise-beans>   
 </ejb-jar>

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScopeJBoss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScopeJBoss.xml	2008-07-23 02:06:19 UTC (rev 76117)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/jbmeta42/unit/Default2xNamingStrategyTestCase_testRemoteHomeWithEarScopeJBoss.xml	2008-07-23 02:39:03 UTC (rev 76118)
@@ -9,5 +9,10 @@
          <ejb-name>session1EjbName</ejb-name>
          <jndi-name>session1EjbName_jndi_name</jndi-name>
       </session>
+
+      <entity>
+         <ejb-name>entity1EjbName</ejb-name>
+         <jndi-name>entity1EjbName_jndi_name</jndi-name>
+      </entity>
    </enterprise-beans>   
 </jboss>




More information about the jboss-cvs-commits mailing list