Author: pete.muir(a)jboss.org
Date: 2009-11-03 15:18:23 -0500 (Tue, 03 Nov 2009)
New Revision: 4631
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/RIBean.java
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractBuiltInBean.java
Log:
Add ability to require 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-03 19:41:30
UTC (rev 4630)
+++ core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java 2009-11-03 20:18:23
UTC (rev 4631)
@@ -60,6 +60,7 @@
import org.jboss.weld.bean.DecoratorImpl;
import org.jboss.weld.bean.InterceptorImpl;
import org.jboss.weld.bean.NewBean;
+import org.jboss.weld.bean.RIBean;
import org.jboss.weld.bean.SessionBean;
import org.jboss.weld.bean.builtin.AbstractBuiltInBean;
import org.jboss.weld.bean.builtin.ExtensionBean;
@@ -911,7 +912,7 @@
{
creationalContext = ((WeldCreationalContext<?>)
creationalContext).getCreationalContext(bean);
}
- if
(getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScope()).isNormal())
+ if (isProxyRequired(bean))
{
if (creationalContext != null || getContext(bean.getScope()).get(bean) != null)
{
@@ -927,6 +928,22 @@
return getContext(bean.getScope()).get((Contextual) bean, creationalContext);
}
}
+
+ private boolean isProxyRequired(Bean<?> bean)
+ {
+ if
(getServices().get(MetaAnnotationStore.class).getScopeModel(bean.getScope()).isNormal())
+ {
+ return true;
+ }
+ else if (bean instanceof RIBean<?>)
+ {
+ return ((RIBean<?>) bean).isProxyRequired();
+ }
+ else
+ {
+ return false;
+ }
+ }
public Object getReference(Bean<?> bean, Type beanType,
CreationalContext<?> creationalContext)
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bean/RIBean.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bean/RIBean.java 2009-11-03 19:41:30 UTC
(rev 4630)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bean/RIBean.java 2009-11-03 20:18:23 UTC
(rev 4631)
@@ -72,6 +72,11 @@
public abstract boolean isProxyable();
+ public boolean isProxyRequired()
+ {
+ return false;
+ }
+
public abstract boolean isPrimitive();
public abstract Set<WeldInjectionPoint<?, ?>>
getAnnotatedInjectionPoints();
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractBuiltInBean.java
===================================================================
---
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractBuiltInBean.java 2009-11-03
19:41:30 UTC (rev 4630)
+++
core/trunk/impl/src/main/java/org/jboss/weld/bean/builtin/AbstractBuiltInBean.java 2009-11-03
20:18:23 UTC (rev 4631)
@@ -108,9 +108,14 @@
@Override
public boolean isProxyable()
{
- return false;
+ return true;
}
+ public boolean isProxyRequired()
+ {
+ return true;
+ }
+
@Override
public String getDescription()
{