[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