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}