[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