You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2014/07/01 18:18:28 UTC

svn commit: r1607131 - in /openwebbeans/trunk: webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java webbeans-tck/testng-dev.xml

Author: rmannibucau
Date: Tue Jul  1 16:18:27 2014
New Revision: 1607131

URL: http://svn.apache.org/r1607131
Log:
unwrap one more level normal scoped instances to get interceptors

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
    openwebbeans/trunk/webbeans-tck/testng-dev.xml

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java?rev=1607131&r1=1607130&r2=1607131&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InjectionTargetImpl.java Tue Jul  1 16:18:27 2014
@@ -34,7 +34,9 @@ import org.apache.webbeans.intercept.Lif
 import org.apache.webbeans.logger.WebBeansLoggerFacade;
 import org.apache.webbeans.proxy.InterceptorDecoratorProxyFactory;
 import org.apache.webbeans.proxy.InterceptorHandler;
+import org.apache.webbeans.proxy.NormalScopeProxyFactory;
 import org.apache.webbeans.proxy.OwbInterceptorProxy;
+import org.apache.webbeans.proxy.OwbNormalScopeProxy;
 import org.apache.webbeans.spi.ResourceInjectionService;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ExceptionUtil;
@@ -323,15 +325,38 @@ public class InjectionTargetImpl<T> exte
         Map<Interceptor<?>, ?> interceptorInstances = null;
         T internalInstance = instance;
 
-        if (getInterceptorInfo() != null && instance instanceof OwbInterceptorProxy)
+        if (getInterceptorInfo() != null)
         {
-            InterceptorDecoratorProxyFactory pf = webBeansContext.getInterceptorDecoratorProxyFactory();
-            InterceptorHandler ih = pf.getInterceptorHandler((OwbInterceptorProxy) instance);
-            if (ih instanceof DefaultInterceptorHandler)
+            if (instance instanceof OwbInterceptorProxy)
             {
-                DefaultInterceptorHandler dih = (DefaultInterceptorHandler) ih;
-                interceptorInstances = dih.getInstances();
-                internalInstance = (T) dih.getTarget();
+                InterceptorDecoratorProxyFactory pf = webBeansContext.getInterceptorDecoratorProxyFactory();
+                InterceptorHandler ih = pf.getInterceptorHandler((OwbInterceptorProxy) instance);
+                if (ih instanceof DefaultInterceptorHandler)
+                {
+                    DefaultInterceptorHandler dih = (DefaultInterceptorHandler) ih;
+                    interceptorInstances = dih.getInstances();
+                    internalInstance = (T) dih.getTarget();
+                }
+            }
+            else if (instance instanceof OwbNormalScopeProxy)
+            {
+                final NormalScopeProxyFactory nspf = webBeansContext.getNormalScopeProxyFactory();
+                final Provider provider = nspf.getInstanceProvider(OwbNormalScopeProxy.class.cast(instance));
+                if (provider != null)
+                {
+                    final Object object = provider.get();
+                    if (object != null && OwbInterceptorProxy.class.isInstance(object))
+                    {
+                        final InterceptorDecoratorProxyFactory pf = webBeansContext.getInterceptorDecoratorProxyFactory();
+                        final InterceptorHandler ih = pf.getInterceptorHandler(OwbInterceptorProxy.class.cast(object));
+                        if (DefaultInterceptorHandler.class.isInstance(ih))
+                        {
+                            final DefaultInterceptorHandler dih = DefaultInterceptorHandler.class.cast(ih);
+                            interceptorInstances = dih.getInstances();
+                            internalInstance = (T) dih.getTarget();
+                        }
+                    }
+                }
             }
         }
         else if (preDestroyMethods == null || preDestroyMethods.size() == 0)

Modified: openwebbeans/trunk/webbeans-tck/testng-dev.xml
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-tck/testng-dev.xml?rev=1607131&r1=1607130&r2=1607131&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-tck/testng-dev.xml (original)
+++ openwebbeans/trunk/webbeans-tck/testng-dev.xml Tue Jul  1 16:18:27 2014
@@ -19,7 +19,7 @@
   <test name="JSR-346 TCK">
     <classes>
       <class
-          name="org.jboss.cdi.tck.tests.lookup.injectionpoint.dynamic.DynamicInjectionPointTest" />
+          name="org.jboss.cdi.tck.interceptors.tests.contract.lifecycleCallback.LifecycleCallbackInterceptorTest" />
     </classes>
     <groups>
       <run>