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: [email protected]
For additional commands, e-mail: [email protected]