[jboss-cvs] JBossAS SVN: r75861 - projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 15 22:27:36 EDT 2008


Author: ALRubinger
Date: 2008-07-15 22:27:36 -0400 (Tue, 15 Jul 2008)
New Revision: 75861

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java
Log:
[JBMETA-75] Local Business JNDI Names should not be concerned with mapped-name when obtaining a base

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-16 02:27:03 UTC (rev 75860)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/jndipolicy/plugins/BasicJndiBindingPolicy.java	2008-07-16 02:27:36 UTC (rev 75861)
@@ -21,6 +21,7 @@
  */
 package org.jboss.metadata.ejb.jboss.jndipolicy.plugins;
 
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DefaultJndiBindingPolicy;
@@ -97,12 +98,27 @@
             // EJB 3
             switch (ifaceType)
             {
-               // base-name / (local|remote) - iface
+               // base-name/local(-iface)
                case BUSINESS_LOCAL :
+                  
+                  if (iface == null)
+                     jndiName = baseJndiName + "/" + ifaceType.toSuffix();
+                  else
+                     jndiName = baseJndiName + "/" + ifaceType.toSuffix() + "-" + iface;
+                  
+                  break;
+                  
+               // base-name/remote(-iface) || mappedName
                case BUSINESS_REMOTE :
                case UNKNOWN :
                   
-                  String mappedName = summary.getBeanMD().getMappedName();
+                  JBossEnterpriseBeanMetaData md = summary.getBeanMD();
+                  String mappedName = null;
+                  if (md.isSession())
+                  {
+                     mappedName = ((JBossSessionBeanMetaData) md).getJndiName();
+                  }
+                  mappedName = md.getMappedName();
                   
                   // JBMETA-75
                   // Use mappedName if it's specified
@@ -160,21 +176,28 @@
    private String getBaseJndiName(EjbDeploymentSummary summary)
    {
       String baseName = null;
+      
+      JBossEnterpriseBeanMetaData md = summary.getBeanMD();
+      assert md !=null : JBossEnterpriseBeanMetaData.class.getSimpleName() + " is not set for " + summary;
 
       //TODO Ugly, should be using polymorphism not runtime type checks w/ casting
-      if (summary.getBeanMD().isSession())
+      if (md.isSession())
       {
-
-         baseName = ((JBossSessionBeanMetaData) summary.getBeanMD()).getJndiName();
+         assert md instanceof JBossSessionBeanMetaData : "Metadata reports as Session Bean but is not assignable to "
+               + JBossSessionBeanMetaData.class.getName();
+         JBossSessionBeanMetaData smd = (JBossSessionBeanMetaData) md;
+         baseName = smd.getJndiName();
+         if (baseName == null || baseName.trim().length() == 0)
+         {
+            baseName = smd.getEjbName();
+         }
       }
-      if (summary.getBeanMD().isEntity())
+      if (md.isEntity())
       {
          if (baseName == null || baseName.trim().length() == 0)
 
             baseName = ((JBossEntityBeanMetaData) summary.getBeanMD()).getJndiName();
-
       }
-
       if (baseName == null || baseName.trim().length() == 0)
       {
          baseName = summary.getBeanMD().getEjbName();




More information about the jboss-cvs-commits mailing list