You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by co...@apache.org on 2010/09/08 15:50:48 UTC

svn commit: r995059 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java

Author: covener
Date: Wed Sep  8 13:50:47 2010
New Revision: 995059

URL: http://svn.apache.org/viewvc?rev=995059&view=rev
Log:
[OWB-451] allow InterceptorUtil to pass along a "CreationalContext key" 
to the InvocationContext it creates.

Modified:
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=995059&r1=995058&r2=995059&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java Wed Sep  8 13:50:47 2010
@@ -546,8 +546,10 @@ public class OpenWebBeansEjbInterceptor 
             if (WebBeansUtil.isContainsInterceptorMethod(filteredInterceptorStack, InterceptorType.AROUND_INVOKE))
             {
                  rv.INTERCEPTOR_OR_DECORATOR_CALL = true;
-                 rv.RETURN_VALUE = InterceptorUtil.callAroundInvokes(threadLocal.get(), instance, (CreationalContextImpl<?>)threadLocalCreationalContext.get(), method, 
-                        arguments, InterceptorUtil.getInterceptorMethods(filteredInterceptorStack, InterceptorType.AROUND_INVOKE), ejbContext);
+                 rv.RETURN_VALUE = InterceptorUtil.callAroundInvokes(threadLocal.get(), instance, 
+                        (CreationalContextImpl<?>)threadLocalCreationalContext.get(), method, arguments, 
+                        InterceptorUtil.getInterceptorMethods(filteredInterceptorStack, InterceptorType.AROUND_INVOKE), 
+                        ejbContext, null);
                  
                  return rv;
             }
@@ -589,9 +591,10 @@ public class OpenWebBeansEjbInterceptor 
             if (WebBeansUtil.isContainsInterceptorMethod(this.nonCtxInterceptedMethodMap.get(method), InterceptorType.AROUND_INVOKE))
             {
                  rv.INTERCEPTOR_OR_DECORATOR_CALL = true;
-                 rv.RETURN_VALUE = InterceptorUtil.callAroundInvokes(bean, instance, (CreationalContextImpl<?>)creationalContext, method, 
-                        arguments, InterceptorUtil.getInterceptorMethods(this.nonCtxInterceptedMethodMap.get(method), InterceptorType.AROUND_INVOKE),
-                        ejbContext);
+                 rv.RETURN_VALUE = InterceptorUtil.callAroundInvokes(bean, instance, 
+                        (CreationalContextImpl<?>)creationalContext, method, arguments,  
+                        InterceptorUtil.getInterceptorMethods(this.nonCtxInterceptedMethodMap.get(method), InterceptorType.AROUND_INVOKE),
+                        ejbContext, null);
                  
                  return rv;
             }

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java?rev=995059&r1=995058&r2=995059&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java Wed Sep  8 13:50:47 2010
@@ -544,7 +544,7 @@ public final class InterceptorUtil
     }
     
     public static Object callAroundInvokes(InjectionTargetBean<?> bean,Object instance, CreationalContextImpl<?> creationalContext,
-            Method proceed, Object[] arguments, List<InterceptorData> stack, InvocationContext ejbInvocationContext) throws Exception
+            Method proceed, Object[] arguments, List<InterceptorData> stack, InvocationContext ejbInvocationContext, Object altKey) throws Exception
     {
         InvocationContextImpl impl = new InvocationContextImpl(bean, instance,
                                                                proceed, arguments, stack, InterceptorType.AROUND_INVOKE);
@@ -553,6 +553,11 @@ public final class InterceptorUtil
             impl.setEJBInvocationContext(ejbInvocationContext);
         }
         
+        if (altKey != null)
+        {
+            impl.setCcKey(altKey);
+        }
+        
         impl.setCreationalContext(creationalContext);
         
         return impl.proceed();



Re: svn commit: r995059 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java

Posted by Eric Covener <co...@apache.org>.
> +                 rv.RETURN_VALUE = InterceptorUtil.callAroundInvokes(threadLocal.get(), instance,
> +                        (CreationalContextImpl<?>)threadLocalCreationalContext.get(), method, arguments,
> +                        InterceptorUtil.getInterceptorMethods(filteredInterceptorStack, InterceptorType.AROUND_INVOKE),
> +                        ejbContext, null);


Obviously not actually exploited yet in the interceptor, in case
anyone is scratching their head