[jboss-cvs] JBossAS SVN: r76233 - 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 Jul 25 10:39:33 EDT 2008
Author: ALRubinger
Date: 2008-07-25 10:39:33 -0400 (Fri, 25 Jul 2008)
New Revision: 76233
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/ejb/ResolveJndiNameDecoratorUnitTestCase.java
Log:
[JBMETA-82] BasicJndiBindingPolicy to honor explicitly-set Home JNDI Names
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-25 14:35:24 UTC (rev 76232)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java 2008-07-25 14:39:33 UTC (rev 76233)
@@ -146,6 +146,28 @@
jndiName = baseJndiName + "/" + ifaceType.toSuffix();
break;
case REMOTE_HOME :
+
+ /*
+ * First ensure that the Home binding has not been explicitly-defined
+ * (JBMETA-82)
+ */
+
+ // Obtain the MD
+ JBossEnterpriseBeanMetaData beanMd = summary.getBeanMD();
+
+ // If a Session Bean
+ if (beanMd.isSession())
+ {
+ JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) beanMd;
+ String explicitHomeJndiName = smd.getHomeJndiName();
+ // If explicitly-defined
+ if (explicitHomeJndiName != null && explicitHomeJndiName.length() > 0)
+ {
+ jndiName = explicitHomeJndiName;
+ break;
+ }
+ }
+
// base-name / (local|remote)Home
jndiName = baseJndiName + "/" + ifaceType.toSuffix();
break;
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java 2008-07-25 14:35:24 UTC (rev 76232)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/ResolveJndiNameDecoratorUnitTestCase.java 2008-07-25 14:39:33 UTC (rev 76233)
@@ -93,6 +93,31 @@
assertEquals(expected, resolvedDeprecated);
}
+ @SuppressWarnings(value="deprecation")
+ public void testResolvedJndiNameExplicitHomeBinding()
+ {
+ // Obtain MD
+ JBossSessionBeanMetaData beanMD = getDecoratedEjbMetaData();
+
+ String overrideJndiName = "overrideJndiName";
+
+ // Override
+ beanMD.setHomeJndiName(overrideJndiName);
+ beanMD.setMappedName(overrideJndiName);
+
+ String expected = overrideJndiName;
+
+ // Resolve
+ String resolved = beanMD.getHomeJndiName();
+
+ // Test
+ assertEquals(expected, resolved);
+
+ // Test Deprecated, backwards-compat behavior (may be removed when these methods no longer exist, JBMETA-68)
+ String resolvedDeprecated = beanMD.determineResolvedJndiName(KnownInterfaces.HOME, null);
+ assertEquals(expected, resolvedDeprecated);
+ }
+
/**
* Tests that JNDI Names for an EJB packaged
* in a JAR have no "appName" in the base
More information about the jboss-cvs-commits
mailing list