[jboss-cvs] JBossAS SVN: r74307 - trunk/server/src/main/org/jboss/deployment.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jun 9 08:20:43 EDT 2008


Author: emuckenhuber
Date: 2008-06-09 08:20:43 -0400 (Mon, 09 Jun 2008)
New Revision: 74307

Modified:
   trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java
Log:
[JBAS-5594] also map EntityBean interfaces

Modified: trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java	2008-06-09 11:18:51 UTC (rev 74306)
+++ trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java	2008-06-09 12:20:43 UTC (rev 74307)
@@ -54,6 +54,7 @@
 import org.jboss.metadata.ejb.jboss.jndipolicy.spi.KnownInterfaces;
 import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
+import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
@@ -562,6 +563,133 @@
                if(trace)
                   log.trace("mapEjbs: "+ejbCompID+", mappings: "+mappings);
             }
+            else if(bean instanceof JBossEntityBeanMetaData)
+            {
+               JBossEntityBeanMetaData ebean = (JBossEntityBeanMetaData) bean;
+               String ejbName = ebean.getEjbName();
+               // home
+               if(ebean.getHome() != null && ebean.getHome().length() > 0)
+               {
+                  cdmd.addJndiName(ebean.determineResolvedJndiName(KnownInterfaces.HOME, policy));
+                  // Add ejb/vfsPath at iface
+                  String home = ebean.getHome();
+                  String ifacePath = prefix + "@" + home;
+                  if(endpointAlternateMap.containsKey(ifacePath))
+                     log.debug(ejbName+" duplicates home: "+home+", existing: "+endpointAlternateMap.get(ifacePath));
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local-home: "+ifacePath+", ejbName: "+ejbName);
+                  }
+                  // Add ejb/iface
+                  ifacePath = "ejb@" + home;
+                  if(endpointMap.containsKey(ifacePath))
+                  {
+                     // TODO: may need to track the duplicates to create an error
+                     log.debug(ejbName+" duplicates home: "+home+", existing: "+endpointMap.get(ifacePath));
+                  }
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, home: "+ifacePath+", ejbName: "+ejbName);
+                  }
+               }
+               // remote
+               if(ebean.getRemote() != null && ebean.getRemote().length() > 0)
+               {
+                  // Add ejb/vfsPath at iface
+                  String remote = ebean.getRemote();
+                  String ifacePath = prefix + "@" + remote;
+                  if(endpointAlternateMap.containsKey(ifacePath))
+                     log.debug(ejbName+" duplicates remote: "+remote+", existing: "+endpointAlternateMap.get(ifacePath));
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, remote: "+ifacePath+", ejbName: "+ejbName);
+                  }
+                  // Add ejb/iface
+                  ifacePath = "ejb@" + remote;
+                  if(endpointMap.containsKey(ifacePath))
+                  {
+                     // TODO: may need to track the duplicates to create an error
+                     log.debug(ejbName+" duplicates remote: "+remote+", existing: "+endpointMap.get(ifacePath));
+                  }
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local: "+ifacePath+", ejbName: "+ejbName);
+                  }
+               }
+               // local-home
+               if(ebean.getLocalHome() != null && ebean.getLocalHome().length() > 0)
+               {
+                  cdmd.addJndiName(ebean.determineResolvedJndiName(KnownInterfaces.LOCAL_HOME, policy));
+                  // Add ejb/vfsPath at iface
+                  String local = ebean.getLocalHome();
+                  String ifacePath = prefix + "@" + local;
+                  if(endpointAlternateMap.containsKey(ifacePath))
+                     log.debug(ejbName+" duplicates local-home: "+local+", existing: "+endpointAlternateMap.get(ifacePath));
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local-home: "+ifacePath+", ejbName: "+ejbName);
+                  }
+                  // Add ejb/iface
+                  ifacePath = "ejb@" + local;
+                  if(endpointMap.containsKey(ifacePath))
+                  {
+                     // TODO: may need to track the duplicates to create an error
+                     log.debug(ejbName+" duplicates local-home: "+local+", existing: "+endpointMap.get(ifacePath));
+                  }
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local-home: "+ifacePath+", ejbName: "+ejbName);
+                  }
+               }
+               // local
+               if(ebean.getLocal() != null && ebean.getLocal().length() > 0)
+               {
+                  // Add ejb/vfsPath at iface
+                  String local = ebean.getLocal();
+                  String ifacePath = prefix + "@" + local;
+                  if(endpointAlternateMap.containsKey(ifacePath))
+                     log.debug(ejbName+" duplicates local: "+local+", existing: "+endpointAlternateMap.get(ifacePath));
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local: "+ifacePath+", ejbName: "+ejbName);
+                  }
+                  // Add ejb/iface
+                  ifacePath = "ejb@" + local;
+                  if(endpointMap.containsKey(ifacePath))
+                  {
+                     // TODO: may need to track the duplicates to create an error
+                     log.debug(ejbName+" duplicates local: "+local+", existing: "+endpointMap.get(ifacePath));
+                  }
+                  else
+                  {
+                     endpointAlternateMap.put(ifacePath, ejbCompID);
+                     mappings.add(ifacePath);
+                     if(trace)
+                        log.trace("mapEjbs, local: "+ifacePath+", ejbName: "+ejbName);
+                  }
+               }
+            }
             else if(bean instanceof JBossGenericBeanMetaData)
             {
                log.warn("JBossGenericBeanMetaData seen for: "+bean.getEjbName());
@@ -905,11 +1033,11 @@
       throws Exception
    {
       ClassLoader loader = unit.getClassLoader();
-      Class ifaceClass = loader.loadClass(iface);
+      Class<?> ifaceClass = loader.loadClass(iface);
       String vfsContext = unit.getRelativePath();
       EndpointInfo info = resolver.getEndpointInfo(ifaceClass, EndpointType.EJB, vfsContext);
       if(info == null)
-         throw new IllegalStateException("Failed to find ContainerDependencyMetaData for: "+info);
+         throw new IllegalStateException("Failed to find ContainerDependencyMetaData for interface: "+ iface);
       ContainerDependencyMetaData cdmd = endpointMap.get(info.getComponentKey());
       return cdmd;
    }




More information about the jboss-cvs-commits mailing list