svn commit: r1356849 - /tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
Author: fhanik Date: Tue Jul 3 17:54:25 2012 New Revision: 1356849 URL: http://svn.apache.org/viewvc?rev=1356849view=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=1356849r1=1356848r2=1356849view=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 StackServlet(); } +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
Re: svn commit: r1356849 - /tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
On 03/07/2012 18:54, fha...@apache.org wrote: Author: fhanik Date: Tue Jul 3 17:54:25 2012 New Revision: 1356849 URL: http://svn.apache.org/viewvc?rev=1356849view=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=1356849r1=1356848r2=1356849view=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(); I don't get what the purpose of the above line is given that asyncSupported is set again without apparently being used a few lines later. What am I missing? Mark if (existing instanceof javax.servlet.SingleThreadModel) { singleThreadModel = true; instancePool = new StackServlet(); } +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 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
RE: svn commit: r1356849 - /tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
-Original Message- From: Mark Thomas [mailto:ma...@apache.org] Sent: Tuesday, July 03, 2012 12:37 PM To: Tomcat Developers List Subject: Re: svn commit: r1356849 - /tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java On 03/07/2012 18:54, fha...@apache.org wrote: Author: fhanik Date: Tue Jul 3 17:54:25 2012 New Revision: 1356849 URL: http://svn.apache.org/viewvc?rev=1356849view=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/start up/Tomcat.java?rev=1356849r1=1356848r2=1356849view=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(); I don't get what the purpose of the above line is given that asyncSupported is set again without apparently being used a few lines later. What am I missing? [Filip Hanik] That line will have to go. The other line ends up setting it to true if there is an annotation (default is false) Filip - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org