[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