You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/11/04 16:53:35 UTC

svn commit: r1636618 - in /tomcat/trunk: ./ java/org/apache/catalina/connector/ java/org/apache/coyote/ java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/ java/org/apache/coyote/http11/upgrade/ java/org/apache/tomcat/util/net/ test/org/apache/c...

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org