[jboss-cvs] JBossAS SVN: r107263 - in projects/ejb3/trunk/core: src/main/java/org/jboss/ejb3 and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 2 10:51:44 EDT 2010


Author: jaikiran
Date: 2010-08-02 10:51:44 -0400 (Mon, 02 Aug 2010)
New Revision: 107263

Modified:
   projects/ejb3/trunk/core/pom.xml
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
Log:
EJBTHREE-2138 Upgrade to 0.2.0-SNAPSHOT of ejb3-timeout

Modified: projects/ejb3/trunk/core/pom.xml
===================================================================
--- projects/ejb3/trunk/core/pom.xml	2010-08-02 14:01:29 UTC (rev 107262)
+++ projects/ejb3/trunk/core/pom.xml	2010-08-02 14:51:44 UTC (rev 107263)
@@ -496,13 +496,13 @@
     <dependency>
       <groupId>org.jboss.ejb3.timeout</groupId>
       <artifactId>jboss-ejb3-timeout-spi</artifactId>
-      <version>0.1.1</version>
+      <version>0.2.0-SNAPSHOT</version>
     </dependency>
 
     <dependency>
       <groupId>org.jboss.ejb3.timeout</groupId>
       <artifactId>jboss-ejb3-timeout-3.0</artifactId>
-      <version>0.1.1</version>
+      <version>0.2.0-SNAPSHOT</version>
       <scope>test</scope>
     </dependency>
 

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2010-08-02 14:01:29 UTC (rev 107262)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/EJBContainer.java	2010-08-02 14:51:44 UTC (rev 107263)
@@ -69,12 +69,10 @@
 import org.jboss.aop.MethodInfo;
 import org.jboss.aop.advice.AdviceStack;
 import org.jboss.aop.advice.Interceptor;
-import org.jboss.aop.advice.PerVmAdvice;
 import org.jboss.aop.annotation.AnnotationRepository;
 import org.jboss.aop.joinpoint.Joinpoint;
 import org.jboss.aop.microcontainer.annotations.DisableAOP;
 import org.jboss.aop.util.MethodHashing;
-import org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor;
 import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.ejb.AllowedOperationsAssociation;
 import org.jboss.ejb3.annotation.Clustered;
@@ -87,7 +85,6 @@
 import org.jboss.ejb3.injection.InjectionInvocation;
 import org.jboss.ejb3.interceptor.InterceptorInfoRepository;
 import org.jboss.ejb3.interceptor.InterceptorInjector;
-import org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor;
 import org.jboss.ejb3.interceptors.container.ManagedObjectAdvisor;
 import org.jboss.ejb3.interceptors.direct.DirectContainer;
 import org.jboss.ejb3.interceptors.direct.IndirectContainer;
@@ -134,6 +131,7 @@
 import org.jboss.metadata.ejb.spec.ApplicationExceptionMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorMetaData;
 import org.jboss.metadata.ejb.spec.InterceptorsMetaData;
+import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
 import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
 import org.jboss.metadata.javaee.spec.Environment;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
@@ -1132,16 +1130,22 @@
    protected Method getTimeoutCallback(NamedMethodMetaData timeoutMethodMetaData, Class<?> beanClass)
    {
       String methodName = null;
+      Class<?>[] timeoutMethodParams = null;
       JBossEnterpriseBeanMetaData metaData = xml;
       if(metaData != null)
       {
          if(timeoutMethodMetaData != null)
          {
+            // timeout method name
             methodName = timeoutMethodMetaData.getMethodName();
+            // timeout method params
+            MethodParametersMetaData methodParams = timeoutMethodMetaData.getMethodParams();
+            String[] paramTypes = methodParams == null ? null : methodParams.toArray(new String[methodParams.size()]);
+            timeoutMethodParams = this.loadTimeoutMethodParamTypes(beanClass.getClassLoader(), paramTypes);
          }
       }
       
-      Method timeoutMethod = timeoutMethodCallbackRequirements.getTimeoutMethod(beanClass, methodName);
+      Method timeoutMethod = timeoutMethodCallbackRequirements.getTimeoutMethod(beanClass, methodName, timeoutMethodParams);
       if(timeoutMethod != null)
          return timeoutMethod;
 
@@ -1178,6 +1182,37 @@
       return null;
    }
    
+   /**
+    * Loads the classes passed through the <code>paramTypes</code>, using the <code>cl</code> {@link ClassLoader}
+    * 
+    * @param cl {@link ClassLoader} which will be used to load the param types
+    * @param paramTypes The fully qualified type names
+    * @return
+    */
+   private Class<?>[] loadTimeoutMethodParamTypes(ClassLoader cl, String[] paramTypes)
+   {
+      if (paramTypes == null)
+      {
+         return null;
+      }
+      // load the method param classes
+      List<Class<?>> timeoutMethodParamTypes = new ArrayList<Class<?>>(paramTypes.length);
+      for (String paramClassName : paramTypes)
+      {
+         Class<?> methodParamClass = null;
+         try
+         {
+            methodParamClass = Class.forName(paramClassName, false, cl);
+         }
+         catch (ClassNotFoundException cnfe)
+         {
+            throw new RuntimeException("Could not load method param class: " + paramClassName + " of timeout method");
+         }
+         timeoutMethodParamTypes.add(methodParamClass);
+      }
+      return timeoutMethodParamTypes.toArray(new Class<?>[paramTypes.length]);
+   }
+   
    protected void initializePool() throws Exception
    {
       org.jboss.ejb3.annotation.Pool poolAnnotation = getAnnotation(org.jboss.ejb3.annotation.Pool.class);



More information about the jboss-cvs-commits mailing list