Author: markt
Date: Fri Aug 12 17:59:22 2011
New Revision: 1157198

URL: http://svn.apache.org/viewvc?rev=1157198&view=rev
Log:
Align InputBuffer initialisation across the connectors
Remove unused code
Reduce visibility of properties and methods

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java Fri Aug 
12 17:59:22 2011
@@ -22,9 +22,11 @@ import org.apache.coyote.InputBuffer;
 import org.apache.coyote.Request;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.http.MimeHeaders;
+import org.apache.tomcat.util.net.AbstractEndpoint;
+import org.apache.tomcat.util.net.SocketWrapper;
 import org.apache.tomcat.util.res.StringManager;
 
-public abstract class AbstractInputBuffer implements InputBuffer{
+public abstract class AbstractInputBuffer<S> implements InputBuffer{
 
     protected static final boolean[] HTTP_TOKEN_CHAR = new boolean[128];
 
@@ -223,12 +225,16 @@ public abstract class AbstractInputBuffe
     }
 
 
-    public abstract boolean parseRequestLine(boolean useAvailableDataOnly) 
throws IOException;
+    public abstract boolean parseRequestLine(boolean useAvailableDataOnly)
+        throws IOException;
     
     public abstract boolean parseHeaders() throws IOException;
     
     protected abstract boolean fill(boolean block) throws IOException; 
 
+    protected abstract void init(SocketWrapper<S> socketWrapper,
+            AbstractEndpoint endpoint) throws IOException;
+
 
     // --------------------------------------------------------- Public Methods
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri Aug 
12 17:59:22 2011
@@ -174,8 +174,8 @@ public class Http11AprProcessor extends 
 
         // Setting up the socket
         this.socket = socketWrapper;
+        inputBuffer.init(socketWrapper, endpoint);
         long socketRef = socketWrapper.getSocket().longValue();
-        inputBuffer.setSocket(socketRef);
         outputBuffer.setSocket(socketRef);
 
         // Error flag
@@ -619,7 +619,7 @@ public class Http11AprProcessor extends 
     }
 
     @Override
-    protected AbstractInputBuffer getInputBuffer() {
+    protected AbstractInputBuffer<Long> getInputBuffer() {
         return inputBuffer;
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri Aug 
12 17:59:22 2011
@@ -205,9 +205,8 @@ public class Http11NioProcessor extends 
 
         // Setting up the socket
         this.socket = socketWrapper;
-        inputBuffer.setSocket(this.socket.getSocket());
+        inputBuffer.init(socketWrapper, endpoint);
         outputBuffer.setSocket(this.socket.getSocket());
-        inputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool());
         
outputBuffer.setSelectorPool(((NioEndpoint)endpoint).getSelectorPool());
 
         // Error flag
@@ -647,7 +646,7 @@ public class Http11NioProcessor extends 
     }
 
     @Override
-    protected AbstractInputBuffer getInputBuffer() {
+    protected AbstractInputBuffer<NioChannel> getInputBuffer() {
         return inputBuffer;
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Aug 12 
17:59:22 2011
@@ -138,7 +138,7 @@ public class Http11Processor extends Abs
 
         // Setting up the I/O
         this.socket = socketWrapper;
-        inputBuffer.setInputStream(socket.getSocket().getInputStream());
+        inputBuffer.init(socketWrapper, endpoint);
         outputBuffer.setOutputStream(socket.getSocket().getOutputStream());
 
         // Error flag
@@ -558,7 +558,7 @@ public class Http11Processor extends Abs
     }
 
     @Override
-    protected AbstractInputBuffer getInputBuffer() {
+    protected AbstractInputBuffer<Socket> getInputBuffer() {
         return inputBuffer;
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java Fri 
Aug 12 17:59:22 2011
@@ -30,6 +30,8 @@ import org.apache.tomcat.jni.Socket;
 import org.apache.tomcat.jni.Status;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.net.AbstractEndpoint;
+import org.apache.tomcat.util.net.SocketWrapper;
 
 /**
  * Implementation of InputBuffer which provides HTTP request header parsing as
@@ -37,7 +39,7 @@ import org.apache.tomcat.util.buf.Messag
  *
  * @author <a href="mailto:r...@apache.org";>Remy Maucherat</a>
  */
-public class InternalAprInputBuffer extends AbstractInputBuffer {
+public class InternalAprInputBuffer extends AbstractInputBuffer<Long> {
 
     private static final Log log =
         LogFactory.getLog(InternalAprInputBuffer.class);
@@ -78,38 +80,17 @@ public class InternalAprInputBuffer exte
     /**
      * Direct byte buffer used to perform actual reading.
      */
-    protected ByteBuffer bbuf;
+    private ByteBuffer bbuf;
 
 
     /**
      * Underlying socket.
      */
-    protected long socket;
-
-
-    // ------------------------------------------------------------- Properties
-
-
-    /**
-     * Set the underlying socket.
-     */
-    public void setSocket(long socket) {
-        this.socket = socket;
-        Socket.setrbb(this.socket, bbuf);
-    }
-
-
-    /**
-     * Get the underlying socket input stream.
-     */
-    public long getSocket() {
-        return socket;
-    }
+    private long socket;
 
 
     // --------------------------------------------------------- Public Methods
 
-
     /**
      * Recycle the input buffer. This should be called when closing the 
      * connection.
@@ -341,7 +322,7 @@ public class InternalAprInputBuffer exte
      * HTTP header parsing is done
      */
     @SuppressWarnings("null") // headerValue cannot be null
-    public boolean parseHeader()
+    private boolean parseHeader()
         throws IOException {
 
         //
@@ -567,6 +548,14 @@ public class InternalAprInputBuffer exte
 
     // ------------------------------------------------------ Protected Methods
 
+    @Override
+    protected void init(SocketWrapper<Long> socketWrapper,
+            AbstractEndpoint endpoint) throws IOException {
+
+        socket = socketWrapper.getSocket().longValue();
+        Socket.setrbb(this.socket, bbuf);
+    }
+
 
     @Override
     protected boolean fill(boolean block) throws IOException {
@@ -666,11 +655,6 @@ public class InternalAprInputBuffer exte
             pos = lastValid;
 
             return (length);
-
         }
-
-
     }
-
-
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java Fri Aug 
12 17:59:22 2011
@@ -19,6 +19,7 @@ package org.apache.coyote.http11;
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.Socket;
 import java.nio.charset.Charset;
 
 import org.apache.coyote.InputBuffer;
@@ -27,6 +28,8 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.net.AbstractEndpoint;
+import org.apache.tomcat.util.net.SocketWrapper;
 
 /**
  * Implementation of InputBuffer which provides HTTP request header parsing as
@@ -34,7 +37,7 @@ import org.apache.tomcat.util.buf.Messag
  *
  * @author <a href="mailto:r...@apache.org";>Remy Maucherat</a>
  */
-public class InternalInputBuffer extends AbstractInputBuffer {
+public class InternalInputBuffer extends AbstractInputBuffer<Socket> {
 
     private static final Log log = 
LogFactory.getLog(InternalInputBuffer.class);
 
@@ -42,7 +45,7 @@ public class InternalInputBuffer extends
     /**
      * Underlying input stream.
      */
-    protected InputStream inputStream;
+    private InputStream inputStream;
 
 
     /**
@@ -68,28 +71,6 @@ public class InternalInputBuffer extends
 
     
     /**
-     * Set the underlying socket input stream.
-     */
-    public void setInputStream(InputStream inputStream) {
-
-        // FIXME: Check for null ?
-
-        this.inputStream = inputStream;
-
-    }
-
-
-    /**
-     * Get the underlying socket input stream.
-     */
-    public InputStream getInputStream() {
-
-        return inputStream;
-
-    }
-
-
-    /**
      * Read the request line. This function is meant to be used during the 
      * HTTP request header parsing. Do NOT attempt to read the request body 
      * using it.
@@ -297,7 +278,7 @@ public class InternalInputBuffer extends
      * HTTP header parsing is done
      */
     @SuppressWarnings("null") // headerValue cannot be null
-    public boolean parseHeader()
+    private boolean parseHeader()
         throws IOException {
 
         //
@@ -468,6 +449,14 @@ public class InternalInputBuffer extends
     // ------------------------------------------------------ Protected Methods
 
 
+    @Override
+    protected void init(SocketWrapper<Socket> socketWrapper,
+            AbstractEndpoint endpoint) throws IOException {
+        inputStream = socketWrapper.getSocket().getInputStream();
+    }
+
+
+
     private void skipLine(int start) throws IOException {
         boolean eol = false;
         int lastRealByte = start;
@@ -576,11 +565,6 @@ public class InternalInputBuffer extends
             pos = lastValid;
 
             return (length);
-
         }
-
-
     }
-
-
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java?rev=1157198&r1=1157197&r2=1157198&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java Fri 
Aug 12 17:59:22 2011
@@ -25,9 +25,11 @@ import org.apache.coyote.InputBuffer;
 import org.apache.coyote.Request;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.MessageBytes;
+import org.apache.tomcat.util.net.AbstractEndpoint;
 import org.apache.tomcat.util.net.NioChannel;
 import org.apache.tomcat.util.net.NioEndpoint;
 import org.apache.tomcat.util.net.NioSelectorPool;
+import org.apache.tomcat.util.net.SocketWrapper;
 
 /**
  * Implementation of InputBuffer which provides HTTP request header parsing as
@@ -36,7 +38,7 @@ import org.apache.tomcat.util.net.NioSel
  * @author <a href="mailto:r...@apache.org";>Remy Maucherat</a>
  * @author Filip Hanik
  */
-public class InternalNioInputBuffer extends AbstractInputBuffer {
+public class InternalNioInputBuffer extends AbstractInputBuffer<NioChannel> {
 
     private static final org.apache.juli.logging.Log log =
         
org.apache.juli.logging.LogFactory.getLog(InternalNioInputBuffer.class);
@@ -84,22 +86,22 @@ public class InternalNioInputBuffer exte
      * Parsing state - used for non blocking parsing so that
      * when more data arrives, we can pick up where we left off.
      */
-    protected boolean parsingRequestLine;
-    protected int parsingRequestLinePhase = 0;
-    protected boolean parsingRequestLineEol = false;
-    protected int parsingRequestLineStart = 0;
-    protected int parsingRequestLineQPos = -1;
-    protected HeaderParsePosition headerParsePos;
+    private boolean parsingRequestLine;
+    private int parsingRequestLinePhase = 0;
+    private boolean parsingRequestLineEol = false;
+    private int parsingRequestLineStart = 0;
+    private int parsingRequestLineQPos = -1;
+    private HeaderParsePosition headerParsePos;
 
     /**
      * Underlying socket.
      */
-    protected NioChannel socket;
+    private NioChannel socket;
     
     /**
      * Selector pool, for blocking reads and blocking writes
      */
-    protected NioSelectorPool pool;
+    private NioSelectorPool pool;
 
 
     /**
@@ -124,47 +126,8 @@ public class InternalNioInputBuffer exte
      */
     private int skipBlankLinesBytes;
 
-    // ------------------------------------------------------------- Properties
-
-
-    /**
-     * Set the underlying socket.
-     */
-    public void setSocket(NioChannel socket) {
-        this.socket = socket;
-        socketReadBufferSize = 
socket.getBufHandler().getReadBuffer().capacity();
-        int bufLength = skipBlankLinesSize + headerBufferSize
-                + socketReadBufferSize;
-        if (buf == null || buf.length < bufLength) {
-            buf = new byte[bufLength];
-        }
-    }
-    
-    /**
-     * Get the underlying socket input stream.
-     */
-    public NioChannel getSocket() {
-        return socket;
-    }
-
-    public void setSelectorPool(NioSelectorPool pool) { 
-        this.pool = pool;
-    }
-    
-    public NioSelectorPool getSelectorPool() {
-        return pool;
-    }
-
 
     // --------------------------------------------------------- Public Methods
-    /**
-     * Issues a non blocking read
-     * @return int
-     * @throws IOException
-     */
-    public int nbRead() throws IOException {
-        return readSocket(true,false);
-    }
 
     /**
      * Recycle the input buffer. This should be called when closing the 
@@ -429,18 +392,18 @@ public class InternalNioInputBuffer exte
         if ( block ) {
             Selector selector = null;
             try {
-                selector = getSelectorPool().get();
+                selector = pool.get();
             } catch ( IOException x ) {
                 // Ignore
             }
             try {
                 NioEndpoint.KeyAttachment att = 
(NioEndpoint.KeyAttachment)socket.getAttachment(false);
                 if ( att == null ) throw new IOException("Key must be 
cancelled.");
-                nRead = 
getSelectorPool().read(socket.getBufHandler().getReadBuffer(),socket,selector,att.getTimeout());
+                nRead = 
pool.read(socket.getBufHandler().getReadBuffer(),socket,selector,att.getTimeout());
             } catch ( EOFException eof ) {
                 nRead = -1;
             } finally { 
-                if ( selector != null ) getSelectorPool().put(selector);
+                if ( selector != null ) pool.put(selector);
             }
         } else {
             nRead = socket.read(socket.getBufHandler().getReadBuffer());
@@ -500,7 +463,7 @@ public class InternalNioInputBuffer exte
      * @return false after reading a blank line (which indicates that the
      * HTTP header parsing is done
      */
-    public HeaderParseStatus parseHeader()
+    private HeaderParseStatus parseHeader()
         throws IOException {
 
         //
@@ -677,6 +640,10 @@ public class InternalNioInputBuffer exte
         return HeaderParseStatus.HAVE_MORE_HEADERS;
     }
     
+    public int getParsingRequestLinePhase() {
+        return parsingRequestLinePhase;
+    }
+
     private HeaderParseStatus skipLine() throws IOException {
         headerParsePos = HeaderParsePosition.HEADER_SKIPLINE;
         boolean eol = false;
@@ -712,7 +679,7 @@ public class InternalNioInputBuffer exte
         return HeaderParseStatus.HAVE_MORE_HEADERS;
     }
 
-    protected HeaderParseData headerData = new HeaderParseData();
+    private HeaderParseData headerData = new HeaderParseData();
     public static class HeaderParseData {
         int start = 0;
         int realPos = 0;
@@ -743,6 +710,24 @@ public class InternalNioInputBuffer exte
 
     // ------------------------------------------------------ Protected Methods
 
+    @Override
+    protected void init(SocketWrapper<NioChannel> socketWrapper,
+            AbstractEndpoint endpoint) throws IOException {
+
+        socket = socketWrapper.getSocket();
+        socketReadBufferSize =
+            socket.getBufHandler().getReadBuffer().capacity();
+
+        int bufLength = skipBlankLinesSize + headerBufferSize
+                + socketReadBufferSize;
+        if (buf == null || buf.length < bufLength) {
+            buf = new byte[bufLength];
+        }
+
+        pool = ((NioEndpoint)endpoint).getSelectorPool();
+    }
+
+
     /**
      * Fill the internal buffer using data from the underlying input stream.
      * 
@@ -804,16 +789,6 @@ public class InternalNioInputBuffer exte
             pos = lastValid;
 
             return (length);
-
         }
-
-
-    }
-
-
-    public int getParsingRequestLinePhase() {
-        return parsingRequestLinePhase;
     }
-
-
 }



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

Reply via email to