[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