[jboss-cvs] JBossAS SVN: r108605 - in projects/ejb3/branches/infinispan-int/core: src/main/java/org/jboss/ejb3/session and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 15 13:06:29 EDT 2010


Author: pferraro
Date: 2010-10-15 13:06:29 -0400 (Fri, 15 Oct 2010)
New Revision: 108605

Modified:
   projects/ejb3/branches/infinispan-int/core/pom.xml
   projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
   projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
   projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java
   projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
Log:
merge --depth=infinity -r108519:108595 from trunk

Modified: projects/ejb3/branches/infinispan-int/core/pom.xml
===================================================================
--- projects/ejb3/branches/infinispan-int/core/pom.xml	2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/pom.xml	2010-10-15 17:06:29 UTC (rev 108605)
@@ -17,7 +17,7 @@
   <!-- Artifact Information -->
   <artifactId>jboss-ejb3-core</artifactId>
   <packaging>jar</packaging>
-  <version>1.5.3-SNAPSHOT</version>
+  <version>1.5.5-SNAPSHOT</version>
   <name>JBoss EJB 3.0 Core</name>
   <url>http://labs.jboss.com/jbossejb3</url>
   <description>JBoss EJB 3.0 Core</description>

Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java	2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java	2010-10-15 17:06:29 UTC (rev 108605)
@@ -187,9 +187,9 @@
       try
       {
          Class<?> invokedBusinessInterface = Class.forName(method.getActualClassName(), false, getClassloader());
-         if (!this.getBusinessInterfaces().contains(invokedBusinessInterface))
+         // EJBTHREE-2076 if it's a EJB2.x view invocation, then invoked business interface should be null.
+         if (this.isEjb2xView(invokedBusinessInterface.getName()))
          {
-            // Required because SerializableMethod will automatically set the actual class name to the declaring class name
             invokedBusinessInterface = null;
          }
          
@@ -539,6 +539,29 @@
       }
       return businessInterfaces;
    }
+   
+   /**
+    * Returns true if the passed fully qualified class name, represents a
+    * EJB 2.x view of the EJB, corresponding to this container. Else
+    * returns false.
+    * 
+    * @param intf Fully qualified class name
+    * @return
+    */
+   private boolean isEjb2xView(String intf)
+   {
+      String remote = this.getMetaData().getRemote();
+      if (remote != null && remote.equals(intf))
+      {
+         return true;
+      }
+      String local = this.getMetaData().getLocal();
+      if (local != null && local.equals(intf))
+      {
+         return true;
+      }
+      return false;
+   }
 
    // ------------------------------------------------------------------------------||
    // Lifecycle Methods ------------------------------------------------------------||

Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java	2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java	2010-10-15 17:06:29 UTC (rev 108605)
@@ -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);
       }

Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java	2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java	2010-10-15 17:06:29 UTC (rev 108605)
@@ -32,7 +32,6 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
 import org.jboss.metadata.serviceref.ServiceReferenceHandler;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
 import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
 
 /**
@@ -50,11 +49,17 @@
 
    public ServiceRefInjector(String name, AnnotatedElement anElement, ServiceReferenceMetaData sref)
    {
+      this(name, sref);
+      this.sref.setAnnotatedElement(anElement);
+   }
+   
+   public ServiceRefInjector(String name, ServiceReferenceMetaData sref)
+   {
       this.name = name;
       this.sref = sref;
-      this.sref.setAnnotatedElement(anElement);
    }
 
+
    public void inject(InjectionContainer container)
    {
       try

Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java	2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java	2010-10-15 17:06:29 UTC (rev 108605)
@@ -63,6 +63,12 @@
          srefMap.put(sref.getServiceRefName(), sref);
 
          String encName = "env/" + sref.getServiceRefName();
+         // create an EncInjector
+         if (!container.getEncInjectors().containsKey(encName))
+         {
+            container.getEncInjectors().put(encName, new ServiceRefInjector(encName, sref));
+         }
+         
          AnnotatedElement annotatedElement = sref.getAnnotatedElement();
          if(annotatedElement == null)
          {



More information about the jboss-cvs-commits mailing list