[weld-commits] Weld SVN: r5103 - in core/trunk/impl/src/main/java/org/jboss/weld: bean/interceptor and 2 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Fri Nov 20 02:12:29 EST 2009


Author: marius.bogoevici
Date: 2009-11-20 02:12:28 -0500 (Fri, 20 Nov 2009)
New Revision: 5103

Modified:
   core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
   core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/CdiInterceptorHandlerFactory.java
   core/trunk/impl/src/main/java/org/jboss/weld/el/AbstractWeldELResolver.java
   core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
Log:
WELD-300: getReference() modified, added a parameter indicating whether the reference obtained is a delegate, so that the injected instance is not a proxy.

Modified: core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java	2009-11-19 17:51:13 UTC (rev 5102)
+++ core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java	2009-11-20 07:12:28 UTC (rev 5103)
@@ -59,7 +59,6 @@
 import javax.inject.Qualifier;
 
 import org.jboss.interceptor.registry.InterceptorRegistry;
-import org.jboss.weld.bean.DecoratorImpl;
 import org.jboss.weld.bean.NewBean;
 import org.jboss.weld.bean.RIBean;
 import org.jboss.weld.bean.SessionBean;
@@ -935,14 +934,14 @@
 
    }
    
-   public Object getReference(Bean<?> bean, CreationalContext<?> creationalContext)
+   public Object getReference(Bean<?> bean, CreationalContext<?> creationalContext, boolean delegate)
    {
       bean = getMostSpecializedBean(bean);
       if (creationalContext instanceof WeldCreationalContext<?>)
       {
          creationalContext = ((WeldCreationalContext<?>) creationalContext).getCreationalContext(bean);
       }
-      if (isProxyRequired(bean))
+      if (!delegate && isProxyRequired(bean))
       {
          if (creationalContext != null || getContext(bean.getScope()).get(bean) != null)
          {
@@ -981,7 +980,7 @@
       {
          throw new IllegalArgumentException("The given beanType is not a type " + beanType +" of the bean " + bean );
       }
-      return getReference(bean, creationalContext);
+      return getReference(bean, creationalContext, false);
    }
 
    
@@ -996,6 +995,7 @@
    public Object getReference(InjectionPoint injectionPoint, Bean<?> resolvedBean, CreationalContext<?> creationalContext)
    {
       boolean registerInjectionPoint = (injectionPoint != null && !injectionPoint.getType().equals(InjectionPoint.class));
+      boolean delegateInjectionPoint = injectionPoint != null && injectionPoint.isDelegate();
       try
       {
          if (registerInjectionPoint)
@@ -1016,12 +1016,12 @@
             }
             else
             {
-               return getReference(resolvedBean, wbCreationalContext);
+               return getReference(resolvedBean, wbCreationalContext, delegateInjectionPoint);
             }
          }
          else
          {
-            return getReference(resolvedBean, creationalContext);
+            return getReference(resolvedBean, creationalContext, delegateInjectionPoint);
          }
       }
       finally

Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/CdiInterceptorHandlerFactory.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/CdiInterceptorHandlerFactory.java	2009-11-19 17:51:13 UTC (rev 5102)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/interceptor/CdiInterceptorHandlerFactory.java	2009-11-20 07:12:28 UTC (rev 5103)
@@ -48,7 +48,7 @@
    @SuppressWarnings("unchecked")
    public InterceptionHandler createFor(final SerializableContextual<Interceptor<Object>, Object> serializableContextual)
    {
-      Object instance = getManager().getReference(serializableContextual.get(), creationalContext);
+      Object instance = getManager().getReference(serializableContextual.get(), creationalContext, false);
       return new CdiInterceptorHandler(new SerializableContextualInstanceImpl<Interceptor<Object>, Object>(serializableContextual, instance, creationalContext),
             serializableContextual.get().getBeanClass());
    }

Modified: core/trunk/impl/src/main/java/org/jboss/weld/el/AbstractWeldELResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/el/AbstractWeldELResolver.java	2009-11-19 17:51:13 UTC (rev 5102)
+++ core/trunk/impl/src/main/java/org/jboss/weld/el/AbstractWeldELResolver.java	2009-11-20 07:12:28 UTC (rev 5103)
@@ -111,7 +111,7 @@
                   
                   public Object call() throws Exception
                   {
-                     return getManager(context).getReference(bean, creationalContext);
+                     return getManager(context).getReference(bean, creationalContext, false);
                   }
                   
                });

Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-19 17:51:13 UTC (rev 5102)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-20 07:12:28 UTC (rev 5103)
@@ -222,7 +222,7 @@
          {
             creationalContext = manager.createCreationalContext(declaringBean);
          }
-         instance = manager.getReference(declaringBean, creationalContext);
+         instance = manager.getReference(declaringBean, creationalContext, false);
          if (instance == null)
          {
             return;



More information about the weld-commits mailing list