Author: rmannibucau
Date: Mon May 20 14:06:03 2013
New Revision: 1484483
URL: http://svn.apache.org/r1484483
Log:
more complete web object handling in WebContext
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
URL:
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java?rev=1484483&r1=1484482&r2=1484483&view=diff
==============================================================================
---
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
(original)
+++
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/WebContext.java
Mon May 20 14:06:03 2013
@@ -27,12 +27,18 @@ import org.apache.webbeans.config.WebBea
import javax.enterprise.context.Dependent;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.AnnotatedType;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.Filter;
import javax.servlet.Servlet;
+import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextListener;
+import javax.servlet.ServletRequestAttributeListener;
+import javax.servlet.ServletRequestListener;
+import javax.servlet.http.HttpSessionAttributeListener;
+import javax.servlet.http.HttpSessionListener;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Collection;
@@ -156,10 +162,11 @@ public class WebContext {
synchronized (this) {
beanDefinition = constructorInjectionBeanCache.get(beanClass);
if (beanDefinition == null) {
- if (Servlet.class.isAssignableFrom(beanClass) ||
Filter.class.isAssignableFrom(beanClass) ||
ServletContextListener.class.isAssignableFrom(beanClass)) {
- beanDefinition = new
ConstructorInjectionBean<Object>(webBeansContext, beanClass,
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(beanClass),
false);
+ final AnnotatedType annotatedType =
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(beanClass);
+ if (isWeb(beanClass)) {
+ beanDefinition = new
ConstructorInjectionBean<Object>(webBeansContext, beanClass, annotatedType,
false);
} else {
- beanDefinition = new
ConstructorInjectionBean<Object>(webBeansContext, beanClass,
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(beanClass));
+ beanDefinition = new
ConstructorInjectionBean<Object>(webBeansContext, beanClass, annotatedType);
}
constructorInjectionBeanCache.put(beanClass,
beanDefinition);
@@ -169,6 +176,17 @@ public class WebContext {
return beanDefinition;
}
+ private static boolean isWeb(final Class<?> beanClass) {
+ return Servlet.class.isAssignableFrom(beanClass)
+ || Filter.class.isAssignableFrom(beanClass)
+ ||
HttpSessionAttributeListener.class.isAssignableFrom(beanClass)
+ || ServletContextListener.class.isAssignableFrom(beanClass)
+ ||
HttpSessionAttributeListener.class.isAssignableFrom(beanClass)
+ || ServletRequestListener.class.isAssignableFrom(beanClass)
+ ||
ServletContextAttributeListener.class.isAssignableFrom(beanClass)
+ ||
ServletRequestAttributeListener.class.isAssignableFrom(beanClass);
+ }
+
private WebBeansContext getWebBeansContext() {
if (webbeansContext == null) {
return getAppContext().getWebBeansContext();