OWB-1153 improve servlet component instance check
git-svn-id: https://svn.apache.org/repos/asf/openwebbeans/trunk@1759903 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatWebPlugin.java b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatWebPlugin.java
index ad79893..bff71fa 100644
--- a/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatWebPlugin.java
+++ b/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat7/TomcatWebPlugin.java
@@ -18,7 +18,6 @@
*/
package org.apache.webbeans.web.tomcat7;
-import javax.jws.WebService;
import javax.servlet.Filter;
import javax.servlet.Servlet;
import javax.servlet.ServletContextAttributeListener;
@@ -30,6 +29,8 @@
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionListener;
+import java.util.EventListener;
+
import org.apache.webbeans.exception.WebBeansConfigurationException;
import org.apache.webbeans.spi.SecurityService;
import org.apache.webbeans.spi.plugins.AbstractOwbPlugin;
@@ -75,45 +76,48 @@
@Override
public void isManagedBean(Class<?> clazz)
{
- if (Servlet.class.isAssignableFrom(clazz) ||
- Filter.class.isAssignableFrom(clazz) ||
- ServletContextListener.class.isAssignableFrom(clazz) ||
- ServletContextAttributeListener.class.isAssignableFrom(clazz) ||
- HttpSessionActivationListener.class.isAssignableFrom(clazz) ||
- HttpSessionAttributeListener.class.isAssignableFrom(clazz) ||
- HttpSessionBindingListener.class.isAssignableFrom(clazz) ||
- HttpSessionListener.class.isAssignableFrom(clazz) ||
- ServletRequestListener.class.isAssignableFrom(clazz) ||
- ServletRequestAttributeListener.class.isAssignableFrom(clazz) )
+ if (isServletSpecClass(clazz))
{
throw new WebBeansConfigurationException("Given class : " + clazz.getName() + " is not managed bean");
}
}
-
+
/**
* {@inheritDoc}
*/
@Override
public boolean supportsJavaEeComponentInjections(Class<?> clazz)
{
- if(Servlet.class.isAssignableFrom(clazz) ||
- Filter.class.isAssignableFrom(clazz) ||
- ServletContextListener.class.isAssignableFrom(clazz) ||
- ServletContextAttributeListener.class.isAssignableFrom(clazz) ||
- HttpSessionActivationListener.class.isAssignableFrom(clazz) ||
- HttpSessionAttributeListener.class.isAssignableFrom(clazz) ||
- HttpSessionBindingListener.class.isAssignableFrom(clazz) ||
- HttpSessionListener.class.isAssignableFrom(clazz) ||
- ServletRequestListener.class.isAssignableFrom(clazz) ||
- ServletRequestAttributeListener.class.isAssignableFrom(clazz) ||
- clazz.isAnnotationPresent(WebService.class))
+ if(isServletSpecClass(clazz))
{
return true;
}
-
+
return false;
}
-
+
+ private boolean isServletSpecClass(Class<?> clazz)
+ {
+ if (Servlet.class.isAssignableFrom(clazz) ||
+ Filter.class.isAssignableFrom(clazz))
+ {
+ return true;
+ }
+
+ if (EventListener.class.isAssignableFrom(clazz))
+ {
+ return ServletContextListener.class.isAssignableFrom(clazz) ||
+ ServletContextAttributeListener.class.isAssignableFrom(clazz) ||
+ HttpSessionActivationListener.class.isAssignableFrom(clazz) ||
+ HttpSessionAttributeListener.class.isAssignableFrom(clazz) ||
+ HttpSessionBindingListener.class.isAssignableFrom(clazz) ||
+ HttpSessionListener.class.isAssignableFrom(clazz) ||
+ ServletRequestListener.class.isAssignableFrom(clazz) ||
+ ServletRequestAttributeListener.class.isAssignableFrom(clazz);
+ }
+ return false;
+ }
+
/**
* {@inheritDoc}