Author: fhanik
Date: Tue Jul  3 17:54:25 2012
New Revision: 1356849

URL: http://svn.apache.org/viewvc?rev=1356849&view=rev
Log:
Allow servlets to specify async support as annotation when added programatically

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1356849&r1=1356848&r2=1356849&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Tue Jul  3 
17:54:25 2012
@@ -29,6 +29,7 @@ import java.util.logging.Logger;
 
 import javax.servlet.Servlet;
 import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Context;
@@ -801,11 +802,25 @@ public class Tomcat {
         @SuppressWarnings("deprecation")
         public ExistingStandardWrapper( Servlet existing ) {
             this.existing = existing;
+            this.asyncSupported = isAsyncSupported();
             if (existing instanceof javax.servlet.SingleThreadModel) {
                 singleThreadModel = true;
                 instancePool = new Stack<Servlet>();
             }
+            this.asyncSupported = hasAsync();
         }
+
+        public boolean hasAsync() {
+            if (isAsyncSupported()) return true;
+            boolean result = false;
+            Class clazz = existing.getClass();
+            if (clazz.isAnnotationPresent(WebServlet.class)) {
+                WebServlet ws = 
(WebServlet)clazz.getAnnotation(WebServlet.class);
+                result = ws.asyncSupported();
+            }
+            return result;
+        }
+
         @Override
         public synchronized Servlet loadServlet() throws ServletException {
             if (singleThreadModel) {



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to