You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2015/11/02 23:20:59 UTC
[2/8] tomee git commit: better handling of creational contexts for
web components
better handling of creational contexts for web components
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3035c836
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3035c836
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3035c836
Branch: refs/heads/tomee-7.0.0-M1
Commit: 3035c83604755cacf8073d6cbcbd0992bd6ddcf9
Parents: 59e366a
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Mon Nov 2 10:22:16 2015 -0800
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Mon Nov 2 10:22:16 2015 -0800
----------------------------------------------------------------------
.../main/java/org/apache/openejb/core/WebContext.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/3035c836/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
index 55d98c1..073be91 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
@@ -25,7 +25,6 @@ import org.apache.openejb.cdi.ConstructorInjectionBean;
import org.apache.webbeans.component.InjectionTargetBean;
import org.apache.webbeans.config.WebBeansContext;
-import javax.enterprise.context.Dependent;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.naming.Context;
@@ -132,7 +131,7 @@ public class WebContext {
public <T> Instance newWeakableInstance(final Class<T> beanClass) throws OpenEJBException {
final WebBeansContext webBeansContext = getWebBeansContext();
final ConstructorInjectionBean<Object> beanDefinition = getConstructorInjectionBean(beanClass, webBeansContext);
- final CreationalContext<Object> creationalContext;
+ CreationalContext<Object> creationalContext;
final Object o;
if (webBeansContext == null) {
creationalContext = null;
@@ -155,6 +154,9 @@ public class WebContext {
if (webBeansContext != null) {
final InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
bean.getInjectionTarget().inject(beanInstance, creationalContext);
+ if (shouldBeReleased(bean.getScope())) {
+ creationalContexts.put(beanInstance, creationalContext);
+ }
}
return new Instance(beanInstance, creationalContext);
}
@@ -229,9 +231,7 @@ public class WebContext {
final InjectionTargetBean<Object> bean = InjectionTargetBean.class.cast(beanDefinition);
bean.getInjectionTarget().inject(beanInstance, creationalContext);
- // if the bean is dependent simply cleanup the creational context once it is created
- final Class<? extends Annotation> scope = beanDefinition.getScope();
- if (scope == null || Dependent.class.equals(scope)) {
+ if (shouldBeReleased(beanDefinition.getScope())) {
creationalContexts.put(beanInstance, creationalContext);
}
}
@@ -242,6 +242,10 @@ public class WebContext {
}
}
+ private boolean shouldBeReleased(final Class<? extends Annotation> scope) {
+ return scope == null || !getWebBeansContext().getBeanManagerImpl().isNormalScope(scope);
+ }
+
public void setBindings(final Map<String, Object> bindings) {
this.bindings = bindings;
}