[jboss-cvs] JBossAS SVN: r72728 - in trunk/server/src: main/org/jboss/deployment and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Apr 25 10:15:31 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-04-25 10:15:31 -0400 (Fri, 25 Apr 2008)
New Revision: 72728

Modified:
   trunk/server/src/etc/deployers/metadata-beans.xml
   trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java
   trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
Log:
Switch to the MappedReferenceMetaDataResolverDeployer as the default resolving deployer

Modified: trunk/server/src/etc/deployers/metadata-beans.xml
===================================================================
--- trunk/server/src/etc/deployers/metadata-beans.xml	2008-04-25 14:13:31 UTC (rev 72727)
+++ trunk/server/src/etc/deployers/metadata-beans.xml	2008-04-25 14:15:31 UTC (rev 72728)
@@ -6,11 +6,20 @@
 -->
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
-	<!-- The reference metdata resolving deployer
-	-->
+	<!-- The old style reference metdata resolving deployer
+
    <bean name="ReferenceMetaDataResolverDeployer"
       class="org.jboss.deployment.ReferenceMetaDataResolverDeployer">
    </bean>
+	-->
+   <!-- A reference metadata resolving deployer that creates and endpoint map
+      for the deployments
+   -->
+   <bean name="ReferenceMetaDataResolverDeployer"
+      class="org.jboss.deployment.MappedReferenceMetaDataResolverDeployer">
+   </bean>
+
+   <!-- Extract annotations into a standard metadata view -->
    <bean name="AnnotationMetaDataDeployer"
       class="org.jboss.deployment.AnnotationMetaDataDeployer">
       <property name="metaDataCompleteIsDefault">false</property>

Modified: trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java	2008-04-25 14:13:31 UTC (rev 72727)
+++ trunk/server/src/main/org/jboss/deployment/MappedReferenceMetaDataResolverDeployer.java	2008-04-25 14:15:31 UTC (rev 72728)
@@ -23,7 +23,6 @@
 
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -43,10 +42,12 @@
 import org.jboss.metadata.client.jboss.JBossClientMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEntityBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossGenericBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.SessionJndiBindingPolicy;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DefaultJndiBindingPolicy;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.EjbDeploymentSummary;
 import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
 import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
@@ -141,37 +142,51 @@
 
       DeploymentEndpointResolver resolver = new MappedDeploymentEndpointResolver(
             endpointMap, endpointAlternateMap, unit.getRelativePath());
-      dump(unit);
+
+      List<String> unresolvedPaths = new ArrayList<String>();
       if(ejbMetaData != null)
       {
          JBossEnterpriseBeansMetaData beans = ejbMetaData.getEnterpriseBeans();
          // Process ejb references
-         List<String> unresolvedPaths;
          try
          {
-            unresolvedPaths = resolve(unit, endpointMap, beans, resolver);
+            resolve(unit, endpointMap, beans, resolver, unresolvedPaths);
          }
          catch (Exception e)
          {
             throw new DeploymentException(e);
          }
-         if(unresolvedPaths != null && unresolvedPaths.size() > 0)
+         if(unresolvedPaths.size() > 0)
             log.warn("Unresolved references exist in JBossMetaData:"+unresolvedPaths);
       }
       if(webMetaData != null)
       {
          // Process web app references
-         List<String> unresolvedPaths = new ArrayList<String>();
-         //resolve(unit, endpointMap, webMetaData.getJndiEnvironmentRefsGroup(), unresolvedPaths);
-         if(unresolvedPaths != null && unresolvedPaths.size() > 0)
+         ContainerDependencyMetaData webAppCDMD = new ContainerDependencyMetaData(unit.getSimpleName(), "web-app", unit.getRelativePath());
+         try
+         {
+            resolve(webAppCDMD, unit, endpointMap, webMetaData.getJndiEnvironmentRefsGroup(), resolver, unresolvedPaths);
+         }
+         catch (Exception e)
+         {
+            throw new DeploymentException(e);
+         }
+         if(unresolvedPaths.size() > 0)
             log.warn("Unresolved references exist in JBossWebMetaData:"+unresolvedPaths);
       }
       if(clientMetaData != null)
       {
          // Process client app references
-         List<String> unresolvedPaths = new ArrayList<String>();
-         //resolve(unit, endpointMap, clientMetaData.getJndiEnvironmentRefsGroup(), unresolvedPaths);
-         if(unresolvedPaths != null && unresolvedPaths.size() > 0)
+         ContainerDependencyMetaData clientCDMD = new ContainerDependencyMetaData(unit.getSimpleName(), "client", unit.getRelativePath());
+         try
+         {
+            resolve(clientCDMD, unit, endpointMap, clientMetaData.getJndiEnvironmentRefsGroup(), resolver, unresolvedPaths);
+         }
+         catch (Exception e)
+         {
+            throw new DeploymentException(e);
+         }
+         if(unresolvedPaths.size() > 0)
             log.warn("Unresolved references exist in JBossClientMetaData: "+unresolvedPaths);
       }
       // Add the unique set of ContainerDependencyMetaData
@@ -183,6 +198,7 @@
       top.addAttachment(DEPENDS_SET_KEY, depends, Set.class);
 
       unit.addAttachment(DeploymentEndpointResolver.class, resolver);
+      dump(unit);
    }
 
    /**
@@ -290,7 +306,7 @@
          {
             // The unique id for this ejb in the deployment
             String ejbCompID = prefix + "#" + bean.getEjbName();
-            String jndiName = getJndiName(bean, bean.isMessageDriven());
+            String jndiName = getJndiName(bean, bean.isMessageDriven(), unit);
             ContainerDependencyMetaData cdmd = new ContainerDependencyMetaData(jndiName, bean.getEjbName(), vfsPath);
             endpointMap.put(ejbCompID, cdmd);
             // debug info for the mappings each ejb has
@@ -397,11 +413,13 @@
 
    /**
     * 
+    * @param cdmd
     * @param unit
     * @param endpointMap
-    * @param referenceeKey
     * @param env
+    * @param resolver
     * @param unresolvedRefs
+    * @throws Exception
     */
    protected void resolve(ContainerDependencyMetaData cdmd, DeploymentUnit unit,
          Map<String, ContainerDependencyMetaData> endpointMap,
@@ -423,14 +441,14 @@
       resolveMsgRefs(cdmd, unit, endpointMap, msgRefs, resolver, unresolvedRefs);
       // TODO, other references
    }
-   protected List<String> resolve(DeploymentUnit unit, Map<String, ContainerDependencyMetaData> endpointMap,
+   protected void resolve(DeploymentUnit unit, Map<String, ContainerDependencyMetaData> endpointMap,
          JBossEnterpriseBeansMetaData beans,
-         DeploymentEndpointResolver resolver)
+         DeploymentEndpointResolver resolver,
+         List<String> unresolvedPaths)
       throws Exception
    {
-      ArrayList<String> unresolvedRefs = new ArrayList<String>();
       if(beans == null || beans.size() == 0)
-         return unresolvedRefs;
+         return;
 
       String vfsPath = unit.getRelativePath();
       for(JBossEnterpriseBeanMetaData bean : beans)
@@ -441,9 +459,8 @@
          if(cdmd == null)
             throw new IllegalStateException("Failed to find ContainerDependencyMetaData for: "+ejbCompID);
          Environment env = bean.getJndiEnvironmentRefsGroup();
-         resolve(cdmd, unit, endpointMap, env, resolver,  unresolvedRefs);
+         resolve(cdmd, unit, endpointMap, env, resolver,  unresolvedPaths);
       }
-      return unresolvedRefs;
    }
 
    protected void resolveEjbAnnotatedRefs(ContainerDependencyMetaData cdmd, DeploymentUnit unit,
@@ -527,6 +544,22 @@
                {
                   target = endpointMap.get(info.getComponentKey());
                }
+               else
+               {
+                  /* A non-local link without a # jar target. This is allowed
+                     for java ee clients so we have to search all ejb deployments.
+                     First get the vfspaths of the ejb deploymens.
+                  */
+                  List<String> ejbPaths = getEjbDeploymentPaths(unit);
+                  for(String path : ejbPaths)
+                  {
+                     EndpointInfo altInfo = resolver.getEndpointInfo(link, EndpointType.EJB, path);
+                     if(altInfo != null)
+                        target = endpointMap.get(altInfo.getComponentKey());
+                     if(target != null)
+                        break;
+                  }
+               }
             }
             if(target == null && ref.getLocal() != null)
             {
@@ -588,6 +621,27 @@
                {
                   target = endpointMap.get(info.getComponentKey());
                }
+               else
+               {
+                  /* A non-local link without a # jar target. This is allowed
+                     for java ee clients so we have to search all ejb deployments.
+                     First get the vfspaths of the ejb deploymens.
+                  */
+                  List<String> ejbPaths = getEjbDeploymentPaths(unit);
+                  for(String path : ejbPaths)
+                  {
+                     EndpointInfo altInfo = resolver.getEndpointInfo(link, EndpointType.EJB, path);
+                     if(altInfo != null)
+                        target = endpointMap.get(altInfo.getComponentKey());
+                     if(target != null)
+                        break;
+                  }
+               }
+               if(target == null)
+               {
+                  unresolvedRefs.add(cdmd.getComponentID()+":"+ref);
+                  continue;
+               }
             }
             if(target == null && ref.getRemote() != null)
             {
@@ -614,6 +668,7 @@
          }
       }
    }
+
    protected void resolveMsgRefs(ContainerDependencyMetaData cdmd, DeploymentUnit unit,
          Map<String, ContainerDependencyMetaData> endpointMap,
          MessageDestinationReferencesMetaData msgRefs,
@@ -669,34 +724,34 @@
       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);
       ContainerDependencyMetaData cdmd = endpointMap.get(info.getComponentKey());
-      return null;
+      return cdmd;
    }
 
-   /**
-    * Resolves a &lt;message-destination&gt; target for a &lt;message-destination-link&gt;
-    * entry and returns the name of the target in the JNDI tree.
-    *
-    * @param di DeploymentUnit
-    * @param link Content of the &lt;message-driven-link&gt; entry.
-    *
-    * @return The JNDI Entry of the target; <code>null</code> if
-    *         no appropriate target could be found.
-    */
-   public static MessageDestinationMetaData findMessageDestination(DeploymentUnit di, String link,
-         ArrayList<MessageDestinationMetaData> searched)
+   private List<String> getEjbDeploymentPaths(DeploymentUnit unit)
    {
-      return resolveMessageDestination(di, link, searched);
+      ArrayList<String> paths = new ArrayList<String>();
+      DeploymentUnit root = unit.getTopLevel();
+      getEjbDeploymentPaths(root, paths);
+      return paths;
    }
-
-
-   private static <T> List<T> getAllAttachments(DeploymentUnit unit, Class<T> type)
+   
+   private void getEjbDeploymentPaths(DeploymentUnit unit,
+         ArrayList<String> paths)
    {
-      ArrayList<T> attachments = new ArrayList<T>();
-      DeploymentUnit top = unit.getTopLevel();
-      getAllAttachments(top, type, attachments);
-      return attachments;
+      if(unit.isAttachmentPresent(JBossMetaData.class))
+         paths.add(unit.getRelativePath());
+      // Process children
+      List<DeploymentUnit> children = unit.getChildren();
+      if(children != null)
+      {
+         for(DeploymentUnit child : children)
+            getEjbDeploymentPaths(child, paths);
+      }
    }
+
    private static <T> void getAllAttachments(DeploymentUnit unit, Class<T> type, ArrayList<T> attachments)
    {
       T attachment = unit.getAttachment(type);
@@ -708,7 +763,8 @@
             getAllAttachments(child, type, attachments);
    }
 
-   private static String getJndiName(JBossEnterpriseBeanMetaData beanMD, boolean isLocal)
+   private static String getJndiName(JBossEnterpriseBeanMetaData beanMD, boolean isLocal,
+         DeploymentUnit unit)
    {
       String jndiName = null;
       if (isLocal)
@@ -722,174 +778,90 @@
       }
       else
       {
-         // FIXME the session.getHomeJndiName should be moved to the JBossSessionMetaData.determineJndiName()
-         // and these if statements replaced with md.determineJndiName()
-         if( beanMD.isEntity() )
+         ClassLoader loader = unit.getClassLoader();
+         EjbDeploymentSummary unitSummary = getUnitSummary(unit, beanMD);
+         Class<? extends DefaultJndiBindingPolicy> defaultPolicyClass = null;
+         try
          {
-            JBossEntityBeanMetaData md = (JBossEntityBeanMetaData) beanMD;
-            jndiName = md.determineJndiName();
+            if(beanMD.getJBossMetaData().isEJB3x())
+            {
+               String policyClassName = "org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy";
+               defaultPolicyClass = (Class<? extends DefaultJndiBindingPolicy>) loader.loadClass(policyClassName);
+            }
+            else if(beanMD.isSession())
+               defaultPolicyClass = SessionJndiBindingPolicy.class;
+            DefaultJndiBindingPolicy policy = beanMD.createPolicy(loader, defaultPolicyClass);
+            // Run through the options for which jndi name
+            if(beanMD.isSession())
+            {
+               JBossSessionBeanMetaData sbeanMD = (JBossSessionBeanMetaData) beanMD;
+               if(sbeanMD.getBusinessRemotes() != null && sbeanMD.getBusinessRemotes().size() > 0)
+                  jndiName = policy.getDefaultRemoteJndiName(unitSummary);
+               else if(sbeanMD.getHome() != null)
+                  jndiName = policy.getDefaultRemoteHomeJndiName(unitSummary);
+               else if(sbeanMD.getRemote() != null)
+                  jndiName = policy.getDefaultRemoteJndiName(unitSummary);
+               else if(sbeanMD.getLocalHome() != null)
+                  jndiName = policy.getDefaultLocalHomeJndiName(unitSummary);
+               else if(sbeanMD.getLocal() != null)
+                  jndiName = policy.getDefaultLocalJndiName(unitSummary);
+            }
+            else
+            {
+               jndiName = policy.getJndiName(unitSummary);
+            }
          }
-         else if( beanMD.isSession())
+         catch(Exception e)
          {
-            JBossSessionBeanMetaData md = (JBossSessionBeanMetaData) beanMD;
-            jndiName = md.determineJndiName();
+            log.warn("Failed to obtain jndi name for bean: "+beanMD.getEjbName());
+            jndiName = beanMD.getEjbName();
          }
       }
       return jndiName;
    }
 
-   private static MessageDestinationMetaData resolveMessageDestination(DeploymentUnit di, String link,
-         ArrayList<MessageDestinationMetaData> searched)
+   private static EjbDeploymentSummary getUnitSummary(DeploymentUnit unit, JBossEnterpriseBeanMetaData beanMD)
    {
-      if (link == null)
-         return null;
-
-      if (log.isTraceEnabled())
-         log.trace("resolveLink( {" + di + "}, {" + link + "})");
-
-      if (di == null)
-         // We should throw an IllegalArgumentException here probably?
-         return null;
-
-      if (link.indexOf('#') != -1)
-         // link is specified in the form path/file.jar#Bean
-         return resolveRelativeMessageDestination(di, link, searched);
-      else
+      ClassLoader loader = unit.getClassLoader();
+      EjbDeploymentSummary summary = new EjbDeploymentSummary();
+      summary.setBeanMD(beanMD);
+      summary.setBeanClassName(beanMD.getEjbClass());
+      summary.setDeploymentName(unit.getSimpleName());
+      // This name cannot contain any .suffix because of the ejb3 DeploymentScope behavior
+      String baseName = unit.getTopLevel().getSimpleName();
+      int dot = baseName.lastIndexOf('.');
+      if(dot > 0)
       {
-         // link contains a Bean Name, scan the DeploymentUnit tree
-         DeploymentUnit top = di.getTopLevel();
-         return resolveAbsoluteMessageDestination(top, link, searched);
+         baseName = baseName.substring(0, dot);
       }
-   }
-
-   private static MessageDestinationMetaData resolveRelativeMessageDestination(DeploymentUnit unit, String link,
-         ArrayList<MessageDestinationMetaData> searched)
-   {
-      String path = link.substring(0, link.indexOf('#'));
-      String destinationName = link.substring(link.indexOf('#') + 1);
-
-      if (log.isTraceEnabled())
+      summary.setDeploymentScopeBaseName(baseName);
+      summary.setEjbName(beanMD.getEjbName());
+      summary.setLoader(loader);
+      summary.setLocal(beanMD.isMessageDriven());
+      if(beanMD instanceof JBossSessionBeanMetaData)
       {
-         log.trace("Resolving relative message-destination-link: " + link);
+         JBossSessionBeanMetaData sbeanMD = (JBossSessionBeanMetaData) beanMD;
+         summary.setStateful(sbeanMD.isStateful());
       }
-      DeploymentUnit top = unit.getTopLevel();
-      DeploymentUnit targetUnit = findLinkPath(top, path);
-      if (targetUnit == null)
-      {
-         log.warn("Can't locate DeploymentUnit for target: " + path);
-         return null;
-      }
-
-      if (log.isTraceEnabled())
-         log.trace("Found appropriate DeploymentUnit: " + targetUnit);
-
-      MessageDestinationMetaData md = null;
-      MessageDestinationsMetaData mds = null;
-      if (targetUnit.getAttachment(JBossMetaData.class) != null)
-      {
-         JBossMetaData appMD = targetUnit.getAttachment(JBossMetaData.class);
-         mds = appMD.getAssemblyDescriptor().getMessageDestinations();
-         md = mds.get(destinationName);
-      }
-      if (targetUnit.getAttachment(JBossWebMetaData.class) != null)
-      {
-         JBossWebMetaData webMD = targetUnit.getAttachment(JBossWebMetaData.class);
-         mds = webMD.getMessageDestinations();
-         md = mds.get(destinationName);
-      }
-
-      if(md == null)
-      {
-         log.warn("DeploymentUnit " + targetUnit + " is not an EJB.jar " + "file!");
-         if(mds != null)
-            searched.addAll(mds);
-      }
-      return md;
+      summary.setService(beanMD.isService());
+      return summary;
    }
-
-   private static MessageDestinationMetaData resolveAbsoluteMessageDestination(DeploymentUnit unit, String link,
-         ArrayList<MessageDestinationMetaData> searched)
-   {
-      if (log.isTraceEnabled())
-         log.trace("Resolving absolute link, di: " + unit);
-
-      // Search current DeploymentUnit
-      MessageDestinationMetaData md = null;
-      MessageDestinationsMetaData mds = null;
-      if (unit.getAttachment(JBossMetaData.class) != null)
-      {
-         JBossMetaData appMD = unit.getAttachment(JBossMetaData.class);
-         mds = appMD.getAssemblyDescriptor().getMessageDestinations();
-         searched.addAll(mds);
-         md = mds.get(link);
-         if (md != null)
-            return md;
-      }
-
-      if (unit.getAttachment(JBossWebMetaData.class) != null)
-      {
-         JBossWebMetaData webMD = unit.getAttachment(JBossWebMetaData.class);
-         mds = webMD.getMessageDestinations();
-         searched.addAll(mds);
-         md = mds.get(link);
-         if(md != null)
-            return md;
-      }
-
-      // Search each subcontext
-      Iterator<DeploymentUnit> it = unit.getChildren().iterator();
-      while (it.hasNext())
-      {
-         DeploymentUnit child = it.next();
-         MessageDestinationMetaData mdMD = resolveAbsoluteMessageDestination(child, link, searched);
-         if (mdMD != null)
-            return mdMD;
-      }
-
-      // Not found
-      return null;
-   }
-
-   private static DeploymentUnit findLinkPath(DeploymentUnit top, String path)
-   {
-      List<DeploymentUnit> children = top.getChildren();
-      DeploymentUnit targetUnit = null;
-      if(children != null)
-      {
-         for(DeploymentUnit child : children)
-         {
-            String childPath = child.getRelativePath();
-            if(childPath.endsWith(path))
-            {
-               targetUnit = child;
-            }
-         }
-      }
-
-      if (targetUnit == null)
-      {
-         return null;
-      }
-
-      if (log.isTraceEnabled())
-      {
-         log.trace("Found appropriate DeploymentUnit: " + targetUnit);
-      }
-      return targetUnit;
-   }
-
    private void dump(DeploymentUnit unit)
    {
       DeploymentUnit top = unit.getTopLevel();
       StringBuffer tmp = new StringBuffer();
       dump(top, tmp, 0);
-      log.debug("Processing unit:\n"+tmp);
+      log.debug("Processing unit="+unit.getSimpleName()+", structure:\n"+tmp);
    }
    private void dump(DeploymentUnit unit, StringBuffer tmp, int depth)
    {
       for(int n = 0; n < depth; n ++)
          tmp.append('+');
-      tmp.append(unit.getRelativePath());
+      if(depth == 0)
+         tmp.append(unit.getSimpleName());
+      else
+         tmp.append(unit.getRelativePath());
+      tmp.append('\n');
       JBossMetaData metaData = unit.getAttachment(JBossMetaData.class);
       if(metaData != null)
       {
@@ -898,7 +870,9 @@
          {
             for(JBossEnterpriseBeanMetaData bean : beans)
             {
-               tmp.append(",ejbName=");
+               for(int n = 0; n < depth+1; n ++)
+                  tmp.append('+');
+               tmp.append("EjbEndpoint:ejbName=");
                tmp.append(bean.getEjbName());
                if(bean.getEjbClass() != null)
                {
@@ -930,10 +904,22 @@
                      tmp.append(",BusinessRemotes: ");
                      tmp.append(remotes);
                   }
+                  dumpEnv(bean.getJndiEnvironmentRefsGroup(), tmp, depth+1);
                }
+               tmp.append('\n');
             }
          }
       }
+      else if(unit.isAttachmentPresent(JBossWebMetaData.class))
+      {
+         JBossWebMetaData webMD = unit.getAttachment(JBossWebMetaData.class);
+         dumpEnv(webMD.getJndiEnvironmentRefsGroup(), tmp, depth++);        
+      }
+      else if(unit.isAttachmentPresent(JBossClientMetaData.class))
+      {
+         JBossClientMetaData clientMD = unit.getAttachment(JBossClientMetaData.class);
+         dumpEnv(clientMD.getJndiEnvironmentRefsGroup(), tmp, depth++);
+      }
       tmp.append('\n');
       List<DeploymentUnit> children = unit.getChildren();
       if(children != null)
@@ -942,6 +928,61 @@
             dump(child, tmp, depth+1);
       }
    }
+   private void dumpEnv(Environment env, StringBuffer tmp, int depth)
+   {
+      if(env == null)
+         return;
+
+      AnnotatedEJBReferencesMetaData annotatedRefs = env.getAnnotatedEjbReferences();
+      if(annotatedRefs != null)
+      {
+         for(AnnotatedEJBReferenceMetaData ref : annotatedRefs)
+         {
+            for(int n = 0; n < depth+1; n ++)
+               tmp.append('+');
+            tmp.append("@EJB(");
+            tmp.append(ref.getEjbRefName());
+            tmp.append(") -> mappedName=");
+            tmp.append(ref.getMappedName());
+            tmp.append("| resolvedJndiName=");
+            tmp.append(ref.getResolvedJndiName());
+            tmp.append('\n');
+         }
+      }
+      EJBLocalReferencesMetaData localRefs = env.getEjbLocalReferences();
+      if(localRefs != null)
+      {
+         for(EJBLocalReferenceMetaData ref : localRefs)
+         {
+            for(int n = 0; n < depth+1; n ++)
+               tmp.append('+');
+            tmp.append("ejb-local-ref(");
+            tmp.append(ref.getEjbRefName());
+            tmp.append(") -> mappedName=");
+            tmp.append(ref.getMappedName());
+            tmp.append("| resolvedJndiName=");
+            tmp.append(ref.getResolvedJndiName());
+            tmp.append('\n');
+         }
+      }
+      EJBReferencesMetaData ejbRefs = env.getEjbReferences();
+      if(ejbRefs != null)
+      {
+         for(EJBReferenceMetaData ref : ejbRefs)
+         {
+            for(int n = 0; n < depth+1; n ++)
+               tmp.append('+');
+            tmp.append("ejb-ref(");
+            tmp.append(ref.getEjbRefName());
+            tmp.append(") -> mappedName=");
+            tmp.append(ref.getMappedName());
+            tmp.append("| resolvedJndiName=");
+            tmp.append(ref.getResolvedJndiName());
+            tmp.append('\n');
+         }
+      }
+      MessageDestinationReferencesMetaData msgRefs = env.getMessageDestinationReferences();
+   }
    private void displayEndpoints(String unitName, Map<String, ContainerDependencyMetaData> endpointMap)
    {
       StringBuilder tmp = new StringBuilder(unitName+" endpoint mappings:\n");
@@ -952,5 +993,4 @@
       }
       log.info(tmp.toString());
    }
-
 }

Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2008-04-25 14:13:31 UTC (rev 72727)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java	2008-04-25 14:15:31 UTC (rev 72728)
@@ -31,10 +31,16 @@
 import javax.management.ObjectName;
 
 import org.jboss.aop.microcontainer.aspects.jmx.JMX;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.ejb.EjbModule;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
 import org.jboss.metadata.ApplicationMetaData;
 import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
 import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
@@ -83,6 +89,7 @@
       super(JBossMetaData.class);
       setOutput(ServiceMetaData.class);
       setOutput(EjbDeployment.class);
+      setOutput(AbstractKernelDeployment.class);
    }
 
    public String getTransactionManagerServiceName()
@@ -313,6 +320,14 @@
 
       unit.addAttachment("EjbServiceMetaData", ejbModule, ServiceMetaData.class);
       
+      /*
+      AbstractKernelDeployment akd = new AbstractKernelDeployment();
+      akd.setName(ejbModule.getObjectName().getCanonicalName()+"Beans");
+      beanFactories.add(abmd);
+      akd.setBeanFactories(beanFactories);
+      unit.addAttachment(KernelDeployment.class, akd);
+      */
+
       // Pass the ejb callByValue setting
       if (callByValue)
          unit.addAttachment("EJB.callByValue", Boolean.TRUE, Boolean.class);




More information about the jboss-cvs-commits mailing list