Author: pete.muir(a)jboss.org
Date: 2009-06-25 11:27:52 -0400 (Thu, 25 Jun 2009)
New Revision: 2891
Modified:
ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeanManager.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/proxy/ClientProxyMethodHandler.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/CreationalContextImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/DependentContext.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
Log:
Implement createCreationalContext and simplify detection of outer context
Modified: ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeanManager.java
===================================================================
--- ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeanManager.java 2009-06-25
14:30:59 UTC (rev 2890)
+++ ri/trunk/api/src/main/java/javax/enterprise/inject/spi/BeanManager.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -404,5 +404,12 @@
* The metadata for construction of the ManagedBean
*/
public <T> ManagedBean<T> createManagedBean(AnnotatedType<T> type);
+
+ /**
+ * Obtain an instance of a {@link CreationalContext}
+ *
+ * @return the {@link CreationalContext} instance
+ */
+ public CreationalContext<?> createCreationalContext();
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-06-25
14:30:59 UTC (rev 2890)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -713,7 +713,7 @@
*/
public Object getReference(Bean<?> bean, Type beanType)
{
- return getInjectableReference(bean, CreationalContextImpl.of(bean));
+ return getInjectableReference(bean,
createCreationalContext().getCreationalContext(bean));
}
@SuppressWarnings("unchecked")
@@ -1148,4 +1148,9 @@
return webbeansELResolver;
}
+ public CreationalContextImpl<?> createCreationalContext()
+ {
+ return new CreationalContextImpl<Object>();
+ }
+
}
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/proxy/ClientProxyMethodHandler.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/proxy/ClientProxyMethodHandler.java 2009-06-25
14:30:59 UTC (rev 2890)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/proxy/ClientProxyMethodHandler.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -109,14 +109,17 @@
private <T> T getProxiedInstance(Bean<T> bean)
{
CreationalContextImpl<T> creationalContext;
+ boolean outer;
if (currentCreationalContext.get() == null)
{
- creationalContext = CreationalContextImpl.of(bean);
+ creationalContext =
manager.createCreationalContext().getCreationalContext(bean);
currentCreationalContext.set(creationalContext);
+ outer = true;
}
else
{
creationalContext = currentCreationalContext.get().getCreationalContext(bean);
+ outer = false;
}
try
{
@@ -125,7 +128,7 @@
}
finally
{
- if (creationalContext.isOuter())
+ if (outer)
{
currentCreationalContext.remove();
}
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/CreationalContextImpl.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/CreationalContextImpl.java 2009-06-25
14:30:59 UTC (rev 2890)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/CreationalContextImpl.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -24,28 +24,20 @@
public class CreationalContextImpl<T> implements CreationalContext<T>
{
-
- public static <T> CreationalContextImpl<T> of(Bean<T> bean)
- {
- return new CreationalContextImpl<T>(bean);
- }
private final Map<Bean<?>, Object> incompleteInstances;
private final Bean<T> bean;
- private final boolean outer;
- private CreationalContextImpl(Bean<T> bean)
+ public CreationalContextImpl()
{
this.incompleteInstances = new HashMap<Bean<?>, Object>();
- this.bean = bean;
- this.outer = true;
+ this.bean = null;
}
private CreationalContextImpl(Bean<T> bean, Map<Bean<?>, Object>
incompleteInstances)
{
this.incompleteInstances = incompleteInstances;
this.bean = bean;
- this.outer = false;
}
public void push(T incompleteInstance)
@@ -67,11 +59,6 @@
{
return incompleteInstances.containsKey(bean);
}
-
- public boolean isOuter()
- {
- return outer;
- }
public void release()
{
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/context/DependentContext.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/DependentContext.java 2009-06-25
14:30:59 UTC (rev 2890)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/context/DependentContext.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -164,8 +164,8 @@
{
if (contextual instanceof Bean)
{
- CreationalContext<T> creationalContext =
CreationalContextImpl.of((Bean<T>) contextual);
- contextual.destroy(instance, creationalContext);
+ CreationalContextImpl<T> creationalContext = new
CreationalContextImpl<T>();
+ contextual.destroy(instance,
creationalContext.getCreationalContext((Bean<T>) contextual));
}
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2009-06-25
14:30:59 UTC (rev 2890)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/ObserverImpl.java 2009-06-25
15:27:52 UTC (rev 2891)
@@ -35,7 +35,6 @@
import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.DefinitionException;
import org.jboss.webbeans.bean.RIBean;
-import org.jboss.webbeans.context.CreationalContextImpl;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.context.DependentInstancesStore;
import org.jboss.webbeans.context.DependentStorageRequest;
@@ -183,7 +182,7 @@
CreationalContext<?> creationalContext = null;
if (!conditional)
{
- creationalContext = CreationalContextImpl.of(observerBean);
+ creationalContext =
manager.createCreationalContext().getCreationalContext(observerBean);
}
instance = manager.getInjectableReference(observerBean, creationalContext);
if (instance == null)
Show replies by date