Author: markt Date: Tue Nov 4 15:53:34 2014 New Revision: 1636618 URL: http://svn.apache.org/r1636618 Log: First pass at removing the BIO code. Some unused/unnecessary code remains and will be removed next.
Removed: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioProcessor.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioServletOutputStream.java tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Modified: tomcat/trunk/BUILDING.txt tomcat/trunk/build.properties.default tomcat/trunk/build.xml tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java tomcat/trunk/webapps/docs/changelog.xml tomcat/trunk/webapps/docs/config/ajp.xml tomcat/trunk/webapps/docs/config/http.xml tomcat/trunk/webapps/docs/manager-howto.xml tomcat/trunk/webapps/docs/ssl-howto.xml tomcat/trunk/webapps/docs/web-socket-howto.xml Modified: tomcat/trunk/BUILDING.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/BUILDING.txt?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/BUILDING.txt (original) +++ tomcat/trunk/BUILDING.txt Tue Nov 4 15:53:34 2014 @@ -292,15 +292,14 @@ directory: output/build/logs -By default the testsuite is run four times to test 4 different -implementations of Tomcat connectors: BIO, NIO, NIO2 and APR. (If you are not +By default the testsuite is run three times to test 3 different +implementations of Tomcat connectors: NIO, NIO2 and APR. (If you are not familiar with Tomcat connectors, see config/http.html in documentation for details). -The 4 runs are enabled and disabled individually by the following +The 3 runs are enabled and disabled individually by the following properties, which all are "true" by default: - execute.test.bio=true execute.test.nio=true execute.test.nio2=true execute.test.apr=true Modified: tomcat/trunk/build.properties.default URL: http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/build.properties.default (original) +++ tomcat/trunk/build.properties.default Tue Nov 4 15:53:34 2014 @@ -32,7 +32,6 @@ version.suffix=-dev # ----- Build control flags ----- # Note enabling validation uses Checkstyle which is LGPL licensed execute.validate=false -execute.test.bio=true execute.test.nio=true execute.test.nio2=true # Still requires APR/native library to be present Modified: tomcat/trunk/build.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/build.xml (original) +++ tomcat/trunk/build.xml Tue Nov 4 15:53:34 2014 @@ -1337,17 +1337,11 @@ <property name="junit.formatter.extension" value=".txt" /> <target name="test" description="Runs the JUnit test cases" - depends="test-bio,test-nio,test-nio2,test-apr,cobertura-report" > + depends="test-nio,test-nio2,test-apr,cobertura-report" > <fail if="test.result.error" message='Some tests completed with an Error. See ${tomcat.build}/logs for details, search for "FAILED".' /> <fail if="test.result.failure" message='Some tests completed with a Failure. See ${tomcat.build}/logs for details, search for "FAILED".' /> </target> - <target name="test-bio" description="Runs the JUnit test cases for BIO. Does not stop on errors." - depends="test-compile,deploy,cobertura-instrument,test-openssl-exists" if="${execute.test.bio}"> - <runtests protocol="org.apache.coyote.http11.Http11Protocol" - extension=".BIO" /> - </target> - <target name="test-nio" description="Runs the JUnit test cases for NIO. Does not stop on errors." depends="test-compile,deploy,cobertura-instrument,test-openssl-exists" if="${execute.test.nio}"> <runtests protocol="org.apache.coyote.http11.Http11NioProtocol" @@ -1498,7 +1492,7 @@ </target> <target name="cobertura-report" if="${test.cobertura}" - depends="test-bio,test-nio,test-nio2,test-apr" + depends="test-nio,test-nio2,test-apr" description="Creates report from gathered Cobertura results"> <cobertura-report srcdir="${basedir}/java" destdir="${cobertura.out}" Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Tue Nov 4 15:53:34 2014 @@ -284,8 +284,6 @@ public class InputBuffer extends Reader if (coyoteRequest.getReadListener() == null) { throw new IllegalStateException("not in non blocking mode."); } - // Need to check is finished before we check available() as BIO always - // returns 1 for isAvailable() if (isFinished()) { // If this is a non-container thread, need to trigger a read // which will eventually lead to a call to onAllDataRead() via a Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Nov 4 15:53:34 2014 @@ -84,7 +84,7 @@ public abstract class AbstractProtocol<S /** * Endpoint that provides low-level network I/O - must be matched to the - * ProtocolHandler implementation (ProtocolHandler using BIO, requires BIO + * ProtocolHandler implementation (ProtocolHandler using NIO, requires NIO * Endpoint etc.). */ protected AbstractEndpoint<S> endpoint = null; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Tue Nov 4 15:53:34 2014 @@ -690,7 +690,7 @@ public abstract class AbstractEndpoint<S * onWritePossible() and/or onDataAvailable() as appropriate are made by * the container. * - * Processing the dispatches requires (for BIO and APR/native at least) + * Processing the dispatches requires (for APR/native at least) * that the socket has been added to the waitingRequests queue. This may * not have occurred by the time that the non-container thread completes * triggering the call to this method. Therefore, the coded syncs on the Modified: tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java (original) +++ tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java Tue Nov 4 15:53:34 2014 @@ -170,11 +170,6 @@ public class TestRegistration extends To combinedRealm.addRealm(nullRealm); ctx.setRealm(combinedRealm); - // Disable keep-alive otherwise request processing threads in keep-alive - // won't shut down fast enough with BIO to de-register the processor - // triggering a test failure - tomcat.getConnector().setAttribute("maxKeepAliveRequests", Integer.valueOf(1)); - tomcat.start(); getUrl("http://localhost:" + getPort()); @@ -195,12 +190,10 @@ public class TestRegistration extends To String protocol = tomcat.getConnector().getProtocolHandlerClassName(); if (protocol.indexOf("Nio2") > 0) { protocol = "nio2"; - } else if (protocol.indexOf("Nio") > 0) { - protocol = "nio"; } else if (protocol.indexOf("Apr") > 0) { protocol = "apr"; } else { - protocol = "bio"; + protocol = "nio"; } String index = tomcat.getConnector().getProperty("nameIndex").toString(); ArrayList<String> expected = new ArrayList<>(Arrays.asList(basicMBeanNames())); Modified: tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java (original) +++ tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Tue Nov 4 15:53:34 2014 @@ -41,7 +41,6 @@ import javax.servlet.http.HttpServletReq import javax.servlet.http.HttpServletResponse; import org.junit.Assert; -import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -91,12 +90,6 @@ public class TestNonBlockingAPI extends @Test(expected=IOException.class) public void testNonBlockingReadIgnoreIsReady() throws Exception { - // TODO Investigate options to get this test to pass with the HTTP BIO - // connector. - Assume.assumeFalse( - "Skipping as this test requires true non-blocking IO", - getTomcatInstance().getConnector().getProtocol() - .equals("org.apache.coyote.http11.Http11Protocol")); doTestNonBlockingRead(true); } Modified: tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java (original) +++ tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java Tue Nov 4 15:53:34 2014 @@ -46,17 +46,15 @@ public class TestAbstractAjpProcessor ex // Has a protocol been specified String protocol = System.getProperty("tomcat.test.protocol"); - // Use BIO by default + // Use NIO by default if (protocol == null) { - protocol = "org.apache.coyote.ajp.AjpProtocol"; + protocol = "org.apache.coyote.ajp.AjpNioProtocol"; } else if (protocol.contains("Nio2")) { protocol = "org.apache.coyote.ajp.AjpNio2Protocol"; - } else if (protocol.contains("Nio")) { - protocol = "org.apache.coyote.ajp.AjpNioProtocol"; } else if (protocol.contains("Apr")) { protocol = "org.apache.coyote.ajp.AjpAprProtocol"; } else { - protocol = "org.apache.coyote.ajp.AjpProtocol"; + protocol = "org.apache.coyote.ajp.AjpNioProtocol"; } return protocol; Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Tue Nov 4 15:53:34 2014 @@ -28,7 +28,6 @@ import javax.websocket.Session; import javax.websocket.WebSocketContainer; import org.junit.Assert; -import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; @@ -92,13 +91,6 @@ public class TestWebSocketFrameClientSSL @Test public void testBug56032() throws Exception { - // TODO Investigate options to get this test to pass with the HTTP BIO - // connector. - Assume.assumeFalse( - "Skip this test on BIO. TODO: investigate options to make it pass with HTTP BIO connector", - getTomcatInstance().getConnector().getProtocol() - .equals("org.apache.coyote.http11.Http11Protocol")); - Tomcat tomcat = getTomcatInstance(); // No file system docBase required Context ctx = tomcat.addContext("", null); Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java (original) +++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Tue Nov 4 15:53:34 2014 @@ -45,14 +45,12 @@ import javax.websocket.server.ServerEndp import javax.websocket.server.ServerEndpointConfig; import org.junit.Assert; -import org.junit.Assume; import org.junit.Test; import org.apache.catalina.Context; import org.apache.catalina.servlets.DefaultServlet; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; -import org.apache.coyote.http11.Http11Protocol; import org.apache.tomcat.util.net.TesterSupport; import org.apache.tomcat.websocket.TesterMessageCountClient.BasicBinary; import org.apache.tomcat.websocket.TesterMessageCountClient.BasicHandler; @@ -389,11 +387,6 @@ public class TestWsWebSocketContainer ex private void doTestWriteTimeoutServer(boolean setTimeoutOnContainer) throws Exception { - // This will never work for BIO - Assume.assumeFalse( - "Skipping test. This feature will never work for BIO connector.", - getProtocol().equals(Http11Protocol.class.getName())); - /* * Note: There are all sorts of horrible uses of statics in this test * because the API uses classes and the tests really need access Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Tue Nov 4 15:53:34 2014 @@ -50,13 +50,22 @@ --> <section name="Tomcat 9.0.0"> <subsection name="General"> - <add> - Make Java 8 the minimum required version to build and run Tomcat 9. - (markt) - </add> - <update> - Remove support for Comet. (markt) - </update> + <changelog> + <add> + Make Java 8 the minimum required version to build and run Tomcat 9. + (markt) + </add> + <update> + Remove support for Comet. (markt) + </update> + </changelog> + </subsection> + <subsection name="Coyote"> + <changelog> + <update> + Remove support for the HTTP BIO and AJP BIO connectors. (markt) + </update> + </changelog> </subsection> </section> </body> Modified: tomcat/trunk/webapps/docs/config/ajp.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/ajp.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/ajp.xml (original) +++ tomcat/trunk/webapps/docs/config/ajp.xml Tue Nov 4 15:53:34 2014 @@ -262,9 +262,9 @@ <p>To use AJP, you must specify the protocol attribute (see above).</p> - <p>The standard AJP connectors (BIO, NIO, NIO2 and APR/native) all support - the following attributes in addition to the common Connector attributes - listed above.</p> + <p>The standard AJP connectors (NIO, NIO2 and APR/native) all support the + following attributes in addition to the common Connector attributes listed + above.</p> <attributes> @@ -343,9 +343,8 @@ <attribute name="executorTerminationTimeoutMillis" required="false"> <p>The time that the private internal executor will wait for request processing threads to terminate before continuing with the process of - stopping the connector. If not set, the default is <code>0</code> (zero) - for the BIO connector and <code>5000</code> (5 seconds) for the NIO, NIO2 - and APR/native connectors.</p> + stopping the connector. If not set, the default is <code>5000</code> (5 + seconds).</p> </attribute> <attribute name="keepAliveTimeout" required="false"> @@ -364,10 +363,7 @@ start accepting and processing new connections again. Note that once the limit has been reached, the operating system may still accept connections based on the <code>acceptCount</code> setting. The default value varies by - connector type. For BIO the default is the value of - <strong>maxThreads</strong> unless an <a href="executor.html">Executor</a> - is used in which case the default will be the value of maxThreads from the - executor. For NIO and NIO2 the default is <code>10000</code>. + connector type. For NIO and NIO2 the default is <code>10000</code>. For APR/native, the default is <code>8192</code>.</p> <p>Note that for APR/native on Windows, the configured value will be reduced to the highest multiple of 1024 that is less than or equal to @@ -443,7 +439,7 @@ <subsection name="Java TCP socket attributes"> - <p>The BIO, NIO and NIO2 implementation support the following Java TCP socket + <p>The NIO and NIO2 implementation support the following Java TCP socket attributes in addition to the common Connector and HTTP attributes listed above.</p> @@ -749,63 +745,54 @@ <table class="defaultTable" style="text-align: center;"> <tr> <th /> - <th>Java Blocking Connector<br />BIO</th> <th>Java Nio Blocking Connector<br />NIO</th> <th>Java Nio2 Blocking Connector<br />NIO2</th> <th>APR/native Connector<br />APR</th> </tr> <tr> <th style="text-align: left;">Classname</th> - <td><code class="noHighlight">AjpProtocol</code></td> <td><code class="noHighlight">AjpNioProtocol</code></td> <td><code class="noHighlight">AjpNio2Protocol</code></td> <td><code class="noHighlight">AjpAprProtocol</code></td> </tr> <tr> <th style="text-align: left;">Tomcat Version</th> - <td>3.x onwards</td> <td>7.x onwards</td> <td>8.x onwards</td> <td>5.5.x onwards</td> </tr> <tr> <th style="text-align: left;">Support Polling</th> - <td>NO</td> <td>YES</td> <td>YES</td> <td>YES</td> </tr> <tr> <th style="text-align: left;">Polling Size</th> - <td>N/A</td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> </tr> <tr> <th style="text-align: left;">Read Request Headers</th> - <td>Blocking</td> <td>Sim Blocking</td> <td>Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Read Request Body</th> - <td>Blocking</td> <td>Sim Blocking</td> <td>Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Write Response</th> - <td>Blocking</td> <td>Sim Blocking</td> <td>Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Wait for next Request</th> - <td>Blocking</td> <td>Non Blocking</td> <td>Non Blocking</td> <td>Non Blocking</td> @@ -815,7 +802,6 @@ <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> - <td><code class="noHighlight">maxConnections</code></td> </tr> </table> Modified: tomcat/trunk/webapps/docs/config/http.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/http.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/http.xml (original) +++ tomcat/trunk/webapps/docs/config/http.xml Tue Nov 4 15:53:34 2014 @@ -261,9 +261,9 @@ <subsection name="Standard Implementation"> - <p>The standard HTTP connectors (BIO, NIO, NIO2 and APR/native) all support - the following attributes in addition to the common Connector attributes - listed above.</p> + <p>The standard HTTP connectors (NIO, NIO2 and APR/native) all support the + following attributes in addition to the common Connector attributes listed + above.</p> <attributes> @@ -382,9 +382,8 @@ <attribute name="executorTerminationTimeoutMillis" required="false"> <p>The time that the private internal executor will wait for request processing threads to terminate before continuing with the process of - stopping the connector. If not set, the default is <code>0</code> (zero) - for the BIO connector and <code>5000</code> (5 seconds) for the NIO, - NIO2 and APR/native connectors.</p> + stopping the connector. If not set, the default is <code>5000</code> (5 + seconds).</p> </attribute> <attribute name="keepAliveTimeout" required="false"> @@ -404,10 +403,7 @@ start accepting and processing new connections again. Note that once the limit has been reached, the operating system may still accept connections based on the <code>acceptCount</code> setting. The default value varies by - connector type. For BIO the default is the value of - <strong>maxThreads</strong> unless an <a href="executor.html">Executor</a> - is used in which case the default will be the value of maxThreads from the - executor. For NIO and NIO2 the default is <code>10000</code>. + connector type. For NIO and NIO2 the default is <code>10000</code>. For APR/native, the default is <code>8192</code>.</p> <p>Note that for APR/native on Windows, the configured value will be reduced to the highest multiple of 1024 that is less than or equal to @@ -552,7 +548,7 @@ <subsection name="Java TCP socket attributes"> - <p>The BIO, NIO and NIO2 implementation support the following Java TCP + <p>The NIO and NIO2 implementation support the following Java TCP socket attributes in addition to the common Connector and HTTP attributes listed above.</p> @@ -626,24 +622,6 @@ </attributes> </subsection> - <subsection name="BIO specific configuration"> - - <p>The following attributes are specific to the BIO connector.</p> - - <attributes> - - <attribute name="disableKeepAlivePercentage" required="false"> - <p>The percentage of processing threads that have to be in use before - HTTP keep-alives are disabled to improve scalability. Values less than - <code>0</code> will be changed to <code>0</code> and values greater than - <code>100</code> will be changed to <code>100</code>. If not specified, - the default value is <code>75</code>.</p> - </attribute> - - </attributes> - - </subsection> - <subsection name="NIO specific configuration"> <p>The following attributes are specific to the NIO connector.</p> @@ -1026,7 +1004,7 @@ attributes to the values <code>https</code> and <code>true</code> respectively, to pass correct information to the servlets.</p> - <p>The BIO, NIO and NIO2 connectors use the JSSE SSL whereas the APR/native + <p>The NIO and NIO2 connectors use the JSSE SSL whereas the APR/native connector uses OpenSSL. Therefore, in addition to using different attributes to configure SSL, the APR/native connector also requires keys and certificates to be provided in a different format.</p> @@ -1034,9 +1012,9 @@ <p>For more information, see the <a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p> - <subsection name="SSL Support - BIO, NIO and NIO2"> + <subsection name="SSL Support - NIO and NIO2"> - <p>The BIO, NIO and NIO2 connectors use the following attributes to configure SSL: + <p>The NIO and NIO2 connectors use the following attributes to configure SSL: </p> <attributes> @@ -1384,63 +1362,54 @@ <table class="defaultTable" style="text-align: center;"> <tr> <th /> - <th>Java Blocking Connector<br />BIO</th> <th>Java Nio Blocking Connector<br />NIO</th> <th>Java Nio2 Blocking Connector<br />NIO2</th> <th>APR/native Connector<br />APR</th> </tr> <tr> <th style="text-align: left;">Classname</th> - <td><code class="noHighlight">Http11Protocol</code></td> <td><code class="noHighlight">Http11NioProtocol</code></td> <td><code class="noHighlight">Http11Nio2Protocol</code></td> <td><code class="noHighlight">Http11AprProtocol</code></td> </tr> <tr> <th style="text-align: left;">Tomcat Version</th> - <td>3.x onwards</td> <td>6.x onwards</td> <td>8.x onwards</td> <td>5.5.x onwards</td> </tr> <tr> <th style="text-align: left;">Support Polling</th> - <td>NO</td> <td>YES</td> <td>YES</td> <td>YES</td> </tr> <tr> <th style="text-align: left;">Polling Size</th> - <td>N/A</td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> </tr> <tr> <th style="text-align: left;">Read HTTP Request</th> - <td>Blocking</td> <td>Non Blocking</td> <td>Non Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Read HTTP Body</th> - <td>Blocking</td> <td>Sim Blocking</td> <td>Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Write HTTP Response</th> - <td>Blocking</td> <td>Sim Blocking</td> <td>Blocking</td> <td>Blocking</td> </tr> <tr> <th style="text-align: left;">Wait for next Request</th> - <td>Blocking</td> <td>Non Blocking</td> <td>Non Blocking</td> <td>Non Blocking</td> @@ -1449,12 +1418,10 @@ <th style="text-align: left;">SSL Support</th> <td>Java SSL</td> <td>Java SSL</td> - <td>Java SSL</td> <td>OpenSSL</td> </tr> <tr> <th style="text-align: left;">SSL Handshake</th> - <td>Blocking</td> <td>Non blocking</td> <td>Non blocking</td> <td>Blocking</td> @@ -1464,7 +1431,6 @@ <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> <td><code class="noHighlight">maxConnections</code></td> - <td><code class="noHighlight">maxConnections</code></td> </tr> </table> Modified: tomcat/trunk/webapps/docs/manager-howto.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/manager-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/manager-howto.xml (original) +++ tomcat/trunk/webapps/docs/manager-howto.xml Tue Nov 4 15:53:34 2014 @@ -798,7 +798,7 @@ has been reloaded several times, it may <source>http://localhost:8080/manager/text/sslConnectorCiphers</source> <p>The SSL Connector/Ciphers diagnostic lists the SSL ciphers that are currently -configured for each connector. For BIO and NIO, the names of the individual +configured for each connector. For NIO and NIO2, the names of the individual cipher suites are listed. For APR, the value of SSLCipherSuite is returned.</p> <p>The response will ook something like this:</p> Modified: tomcat/trunk/webapps/docs/ssl-howto.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/ssl-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/ssl-howto.xml (original) +++ tomcat/trunk/webapps/docs/ssl-howto.xml Tue Nov 4 15:53:34 2014 @@ -355,7 +355,7 @@ and environment. The configuration optio are mandatory, are documented in the SSL Support section of the <a href="config/http.html#SSL_Support">HTTP connector</a> configuration reference. Make sure that you use the correct attributes for the connector you -are using. The BIO and NIO connectors use JSSE whereas the APR/native connector +are using. The NIO and NIO2 connectors use JSSE whereas the APR/native connector uses APR.</p> <p>The <code>port</code> attribute (default value is 8443) is the TCP/IP @@ -541,7 +541,7 @@ public class SessionTrackingModeListener }]]></source> - <p>Note: SSL session tracking is implemented for the BIO and NIO connectors. + <p>Note: SSL session tracking is implemented for the NIO and NIO2 connectors. It is not yet implemented for the APR connector.</p> </section> @@ -571,8 +571,8 @@ mgr.invalidateSession(); response.setHeader("Connection", "close");]]></source> <p> Note that this code is Tomcat specific due to the use of the - SSLSessionManager class. This is currently only available for the BIO and - NIO connectors, not the APR/native connector. + SSLSessionManager class. This is currently only available for the NIO and + NIO2 connectors, not the APR/native connector. </p> </section> Modified: tomcat/trunk/webapps/docs/web-socket-howto.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/web-socket-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/web-socket-howto.xml (original) +++ tomcat/trunk/webapps/docs/web-socket-howto.xml Tue Nov 4 15:53:34 2014 @@ -49,24 +49,6 @@ code</a>.</p> </section> -<section name="Production usage"> -<p>Although the WebSocket implementation does work with any of the HTTP -connectors, it is not recommended to the WebSocket with the BIO HTTP connector -as the typical uses of WebSocket (large numbers of mostly idle connections) is -not a good fit for the HTTP BIO connector which requires that one thread is -allocated per connection regardless of whether or not the connection is idle. -</p> - -<p>It has been reported (<bug>56304</bug>) that Linux can take large numbers of -minutes to report dropped connections. When using WebSocket with the BIO HTTP -connector this can result in threads blocking on writes for this period. This is -likely to be undesirable. The time taken for the connection to be reported as -dropped can be reduced by using the kernel network parameter -<code>/proc/sys/net/ipv4/tcp_retries2</code>. Alternatively, one of the other -HTTP connectors may be used as they utilise non-blocking IO enabling Tomcat to -implement its own timeout mechanism to handle these cases.</p> -</section> - <section name="Tomcat WebSocket specific configuration"> <p>Tomcat provides a number of Tomcat specific configuration options for --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org