[jboss-cvs] JBossAS SVN: r72386 - projects/ejb3/trunk/core/src/main/java/org/jboss/injection.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 17 16:06:44 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-04-17 16:06:43 -0400 (Thu, 17 Apr 2008)
New Revision: 72386

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
Log:
Look to annotation ejb ref metadata if there is no mapped name

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java	2008-04-17 20:03:33 UTC (rev 72385)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java	2008-04-17 20:06:43 UTC (rev 72386)
@@ -35,6 +35,8 @@
 import org.jboss.ejb3.annotation.IgnoreDependency;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.AbstractEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.RemoteEnvironment;
 
@@ -79,7 +81,6 @@
       String mappedName = ref.getMappedName();
       if (mappedName != null && mappedName.equals(""))
          mappedName = null;
-      // See if the name has been resolved externally
       if(mappedName == null && ref.getResolvedJndiName() != null)
          mappedName = ref.getResolvedJndiName();
 
@@ -109,7 +110,7 @@
       }
       else
       {
-         ejbRefEncInjector(mappedName, encName, refClass, link, errorType, container);
+         ejbRefEncInjector(mappedName, encName, null, refClass, link, errorType, container);
          if (ref.getIgnoreDependency() != null)
          {
             log.debug("IGNORING <ejb-ref> DEPENDENCY: " + encName);
@@ -150,10 +151,26 @@
       }
    }
 
-   protected void ejbRefEncInjector(String mappedName, String encName, Class refClass, String link, String errorType, InjectionContainer container)
+   protected void ejbRefEncInjector(String mappedName, String encName, String fieldName, Class refClass, String link, String errorType, InjectionContainer container)
    {
-      if (refClass != null && (refClass.equals(Object.class) || refClass.equals(void.class))) refClass = null;
-      if (mappedName != null && mappedName.trim().equals("")) mappedName = null;
+      if (refClass != null && (refClass.equals(Object.class) || refClass.equals(void.class)))
+         refClass = null;
+      if (mappedName != null && mappedName.trim().equals(""))
+         mappedName = null;
+      if (mappedName == null)
+      {
+         //
+         AnnotatedEJBReferencesMetaData amds = container.getEnvironmentRefGroup().getAnnotatedEjbReferences();
+         AnnotatedEJBReferenceMetaData amd = amds.get(encName);
+         if(amd == null)
+            amd = amds.get(fieldName);
+         if(amd != null)
+         {
+            mappedName = amd.getMappedName();
+            if(mappedName == null)
+               mappedName = amd.getResolvedJndiName();
+         }
+      }
 
       EncInjector injector = null;
       
@@ -277,7 +294,7 @@
       encName = "env/" + encName;
 
       if (container.getEncInjectors().containsKey(encName)) return;
-      ejbRefEncInjector(ejb.mappedName(), encName, ejb.beanInterface(), ejb.beanName(), "@EJB", container);
+      ejbRefEncInjector(ejb.mappedName(), encName, null, ejb.beanInterface(), ejb.beanName(), "@EJB", container);
 
       // handle dependencies
 
@@ -297,7 +314,7 @@
          String encName = getEncName(ref, method);
          if (!container.getEncInjectors().containsKey(encName))
          {
-            ejbRefEncInjector(ref.mappedName(), encName, method.getParameterTypes()[0], ref.beanName(), "@EJB", container);
+            ejbRefEncInjector(ref.mappedName(), encName, method.getName().substring(0), method.getParameterTypes()[0], ref.beanName(), "@EJB", container);
             
             if (container.getAnnotation(IgnoreDependency.class, method) == null)
             {
@@ -327,7 +344,7 @@
                else
                   ejbRefDependency(ref.mappedName(), ref.beanName(), container, field.getType(), "@EJB", encName);
             }
-            ejbRefEncInjector(ref.mappedName(), encName, field.getType(), ref.beanName(), "@EJB", container);
+            ejbRefEncInjector(ref.mappedName(), encName, field.getName(), field.getType(), ref.beanName(), "@EJB", container);
          }
          super.handleFieldAnnotations(field, container, injectors);
       }




More information about the jboss-cvs-commits mailing list