[jboss-cvs] JBossAS SVN: r108566 - 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 Oct 14 02:34:35 EDT 2010


Author: jaikiran
Date: 2010-10-14 02:34:35 -0400 (Thu, 14 Oct 2010)
New Revision: 108566

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
Log:
EJBTHREE-2182 Take into account beanInterface attribute of @EJB

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	2010-10-14 03:24:47 UTC (rev 108565)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java	2010-10-14 06:34:35 UTC (rev 108566)
@@ -38,6 +38,7 @@
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.RemoteEnvironment;
+import org.quartz.ObjectAlreadyExistsException;
 
 /**
  * Searches bean class for all @Inject and create Injectors
@@ -347,14 +348,19 @@
          String encName = getEncName(ref, method);
          if (!container.getEncInjectors().containsKey(encName))
          {
-            ejbRefEncInjector(ref.mappedName(), encName, method.getName().substring(0), method.getParameterTypes()[0], ref.beanName(), "@EJB", container);
+            Class<?> businessInterface = method.getParameterTypes()[0];
+            if (ref.beanInterface() != null && ref.beanInterface() != Object.class)
+            {
+               businessInterface = ref.beanInterface();
+            }
+            ejbRefEncInjector(ref.mappedName(), encName, method.getName().substring(0), businessInterface, ref.beanName(), "@EJB", container);
             
             if (container.getAnnotation(IgnoreDependency.class, method) == null)
             {
                if (isIgnoreDependency(container, ref))
                   log.debug("IGNORING <ejb-ref> DEPENDENCY: " + encName);
                else
-                  ejbRefDependency(ref.mappedName(), ref.beanName(), container, method.getParameterTypes()[0], "@EJB", encName);
+                  ejbRefDependency(ref.mappedName(), ref.beanName(), container, businessInterface, "@EJB", encName);
             }
          }
 
@@ -370,14 +376,19 @@
          String encName = getEncName(ref, field);
          if (!container.getEncInjectors().containsKey(encName))
          {
+            Class<?> businessInterface = field.getType();
+            if (ref.beanInterface() != null && ref.beanInterface() != Object.class)
+            {
+               businessInterface = ref.beanInterface();
+            }
             if (container.getAnnotation(IgnoreDependency.class, field) == null)
             {
                if (isIgnoreDependency(container, ref))
                   log.debug("IGNORING <ejb-ref> DEPENDENCY: " + encName);
                else
-                  ejbRefDependency(ref.mappedName(), ref.beanName(), container, field.getType(), "@EJB", encName);
+                  ejbRefDependency(ref.mappedName(), ref.beanName(), container, businessInterface, "@EJB", encName);
             }
-            ejbRefEncInjector(ref.mappedName(), encName, field.getName(), field.getType(), ref.beanName(), "@EJB", container);
+            ejbRefEncInjector(ref.mappedName(), encName, field.getName(), businessInterface, ref.beanName(), "@EJB", container);
          }
          super.handleFieldAnnotations(field, container, injectors);
       }



More information about the jboss-cvs-commits mailing list