[webbeans-commits] Webbeans SVN: r977 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: util and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Jan 15 02:32:36 EST 2009


Author: nickarls
Date: 2009-01-15 02:32:35 -0500 (Thu, 15 Jan 2009)
New Revision: 977

Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
Log:
Shortcut for AbstractBean proxybility (proxibility? proxyability? proxiability?) tests

Temporary(?) fix for injection point checks with two producer beans

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-15 06:52:42 UTC (rev 976)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java	2009-01-15 07:32:35 UTC (rev 977)
@@ -46,6 +46,7 @@
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
 import org.jboss.webbeans.model.MergedStereotypes;
+import org.jboss.webbeans.util.Proxies;
 import org.jboss.webbeans.util.Reflections;
 
 /**
@@ -62,6 +63,8 @@
    @SuppressWarnings("unchecked")
    private static Set<Class<?>> STANDARD_WEB_BEAN_CLASSES = new HashSet<Class<?>>(Arrays.asList(Event.class, ManagerImpl.class));
 
+   private boolean proxyable;
+
    /**
     * Helper class for getting deployment type
     * 
@@ -137,6 +140,7 @@
       checkDeploymentType();
       initScopeType();
       initTypes();
+      proxyable = Proxies.apiTypesAreProxyable(getTypes());
    }
 
    /**
@@ -541,4 +545,9 @@
    {
       return "AbstractBean " + getName();
    }
+
+   public boolean isProxyable()
+   {
+      return proxyable;
+   }
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-15 06:52:42 UTC (rev 976)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java	2009-01-15 07:32:35 UTC (rev 977)
@@ -165,6 +165,10 @@
          throw new IllegalProductException("Producers cannot declare passivating scope and return a non-serializable class");
       }
       InjectionPointImpl injectionPoint = (InjectionPointImpl) manager.getInjectionPointProvider().getCurrentInjectionPoint();
+      if (injectionPoint == null)
+      {
+         return;
+      }
       if (dependent && Reflections.isPassivatingBean(injectionPoint.getBean()))
       {
          if (injectionPoint.isField())

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java	2009-01-15 06:52:42 UTC (rev 976)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java	2009-01-15 07:32:35 UTC (rev 977)
@@ -9,6 +9,8 @@
 
 import javax.webbeans.manager.Bean;
 
+import org.jboss.webbeans.bean.AbstractBean;
+
 public class Proxies
 {
 
@@ -150,8 +152,26 @@
     */
    public static boolean isBeanProxyable(Bean<?> bean)
    {
-      for (Type apiType : bean.getTypes())
+      if (bean instanceof AbstractBean)
       {
+         return ((AbstractBean<?, ?>) bean).isProxyable();
+      }
+      else
+      {
+         return apiTypesAreProxyable(bean.getTypes());
+      }
+   }
+
+   /**
+    * Indicates if a set of types are all proxyable
+    * 
+    * @param types The types to test
+    * @return True if proxyable, false otherwise
+    */
+   public static boolean apiTypesAreProxyable(Set<Type> types)
+   {
+      for (Type apiType : types)
+      {
          if (Object.class.equals(apiType))
          {
             continue;




More information about the weld-commits mailing list