Author: markt
Date: Mon Jun 21 11:27:18 2010
New Revision: 956533

URL: http://svn.apache.org/viewvc?rev=956533&view=rev
Log:
Reduce code duplication in connectors: Move addFilter() and addInputFilter() to 
base class

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.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

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=956533&r1=956532&r2=956533&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Mon 
Jun 21 11:27:18 2010
@@ -30,7 +30,7 @@ import org.apache.tomcat.util.buf.ByteCh
 import org.apache.tomcat.util.buf.MessageBytes;
 import org.apache.tomcat.util.res.StringManager;
 
-public class AbstractHttp11Processor {
+public abstract class AbstractHttp11Processor {
 
     /**
      * Logger.
@@ -720,4 +720,69 @@ public class AbstractHttp11Processor {
     }
 
 
+    /**
+     * Exposes input buffer to super class to allow better code re-use.
+     * @return  The input buffer used by the processor. 
+     */
+    protected abstract AbstractInputBuffer getInputBuffer();
+
+    /**
+     * Exposes output buffer to super class to allow better code re-use.
+     * @return  The output buffer used by the processor. 
+     */
+    protected abstract AbstractOutputBuffer getOutputBuffer();
+
+    /**
+     * Add input or output filter.
+     *
+     * @param className class name of the filter
+     */
+    protected void addFilter(String className) {
+        try {
+            Class<?> clazz = Class.forName(className);
+            Object obj = clazz.newInstance();
+            if (obj instanceof InputFilter) {
+                getInputBuffer().addFilter((InputFilter) obj);
+            } else if (obj instanceof OutputFilter) {
+                getOutputBuffer().addFilter((OutputFilter) obj);
+            } else {
+                log.warn(sm.getString("http11processor.filter.unknown",
+                        className));
+            }
+        } catch (Exception e) {
+            log.error(sm.getString(
+                    "http11processor.filter.error", className), e);
+        }
+    }
+
+
+    /**
+     * Add an input filter to the current request.
+     *
+     * @return false if the encoding was not found (which would mean it is
+     * unsupported)
+     */
+    protected boolean addInputFilter(InputFilter[] inputFilters,
+                                     String encodingName) {
+        if (encodingName.equals("identity")) {
+            // Skip
+        } else if (encodingName.equals("chunked")) {
+            getInputBuffer().addActiveFilter
+                (inputFilters[Constants.CHUNKED_FILTER]);
+            contentDelimitation = true;
+        } else {
+            for (int i = 2; i < inputFilters.length; i++) {
+                if (inputFilters[i].getEncodingName()
+                    .toString().equals(encodingName)) {
+                    getInputBuffer().addActiveFilter(inputFilters[i]);
+                    return true;
+                }
+            }
+            return false;
+        }
+        return true;
+    }
+
+
+
 }

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=956533&r1=956532&r2=956533&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Mon Jun 
21 11:27:18 2010
@@ -151,28 +151,6 @@ public class Http11AprProcessor extends 
 
 
     /**
-     * Add input or output filter.
-     *
-     * @param className class name of the filter
-     */
-    protected void addFilter(String className) {
-        try {
-            Class<?> clazz = Class.forName(className);
-            Object obj = clazz.newInstance();
-            if (obj instanceof InputFilter) {
-                inputBuffer.addFilter((InputFilter) obj);
-            } else if (obj instanceof OutputFilter) {
-                outputBuffer.addFilter((OutputFilter) obj);
-            } else {
-                log.warn(sm.getString("http11processor.filter.unknown", 
className));
-            }
-        } catch (Exception e) {
-            log.error(sm.getString("http11processor.filter.error", className), 
e);
-        }
-    }
-
-
-    /**
      * Process pipelined HTTP requests using the specified input and output
      * streams.
      *
@@ -1196,33 +1174,14 @@ public class Http11AprProcessor extends 
         outputBuffer.addFilter(new GzipOutputFilter());
 
     }
-
-
-    /**
-     * Add an input filter to the current request.
-     *
-     * @return false if the encoding was not found (which would mean it is
-     * unsupported)
-     */
-    protected boolean addInputFilter(InputFilter[] inputFilters,
-                                     String encodingName) {
-        if (encodingName.equals("identity")) {
-            // Skip
-        } else if (encodingName.equals("chunked")) {
-            inputBuffer.addActiveFilter
-                (inputFilters[Constants.CHUNKED_FILTER]);
-            contentDelimitation = true;
-        } else {
-            for (int i = 2; i < inputFilters.length; i++) {
-                if (inputFilters[i].getEncodingName()
-                    .toString().equals(encodingName)) {
-                    inputBuffer.addActiveFilter(inputFilters[i]);
-                    return true;
-                }
-            }
-            return false;
-        }
-        return true;
+    
+    @Override
+    protected AbstractInputBuffer getInputBuffer() {
+        return inputBuffer;
     }
 
+    @Override
+    protected AbstractOutputBuffer getOutputBuffer() {
+        return outputBuffer;
+    }
 }

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=956533&r1=956532&r2=956533&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Mon Jun 
21 11:27:18 2010
@@ -16,7 +16,6 @@
  */
 
 package org.apache.coyote.http11;
-
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.net.InetAddress;
@@ -161,28 +160,6 @@ public class Http11NioProcessor extends 
 
 
     /**
-     * Add input or output filter.
-     *
-     * @param className class name of the filter
-     */
-    protected void addFilter(String className) {
-        try {
-            Class<?> clazz = Class.forName(className);
-            Object obj = clazz.newInstance();
-            if (obj instanceof InputFilter) {
-                inputBuffer.addFilter((InputFilter) obj);
-            } else if (obj instanceof OutputFilter) {
-                outputBuffer.addFilter((OutputFilter) obj);
-            } else {
-                log.warn(sm.getString("http11processor.filter.unknown", 
className));
-            }
-        } catch (Exception e) {
-            log.error(sm.getString("http11processor.filter.error", className), 
e);
-        }
-    }
-
-
-    /**
      * Process pipelined HTTP requests using the specified input and output
      * streams.
      *
@@ -1251,34 +1228,6 @@ public class Http11NioProcessor extends 
 
 
     /**
-     * Add an input filter to the current request.
-     *
-     * @return false if the encoding was not found (which would mean it is
-     * unsupported)
-     */
-    protected boolean addInputFilter(InputFilter[] inputFilters,
-                                     String encodingName) {
-        if (encodingName.equals("identity")) {
-            // Skip
-        } else if (encodingName.equals("chunked")) {
-            inputBuffer.addActiveFilter
-                (inputFilters[Constants.CHUNKED_FILTER]);
-            contentDelimitation = true;
-        } else {
-            for (int i = 2; i < inputFilters.length; i++) {
-                if (inputFilters[i].getEncodingName()
-                    .toString().equals(encodingName)) {
-                    inputBuffer.addActiveFilter(inputFilters[i]);
-                    return true;
-                }
-            }
-            return false;
-        }
-        return true;
-    }
-
-
-    /**
      * Specialized utility method: find a sequence of lower case bytes inside
      * a ByteChunk.
      */
@@ -1323,6 +1272,16 @@ public class Http11NioProcessor extends 
                status == 501 /* SC_NOT_IMPLEMENTED */;
     }
      
+    @Override
+    protected AbstractInputBuffer getInputBuffer() {
+        return inputBuffer;
+    }
+
+    @Override
+    protected AbstractOutputBuffer getOutputBuffer() {
+        return outputBuffer;
+    }
+
     /**
      * Set the SSL information for this HTTP connection.
      */

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=956533&r1=956532&r2=956533&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Mon Jun 21 
11:27:18 2010
@@ -1001,55 +1001,6 @@ public class Http11Processor extends Abs
 
 
     /**
-     * Add an input filter to the current request.
-     *
-     * @return false if the encoding was not found (which would mean it is
-     * unsupported)
-     */
-    protected boolean addInputFilter(InputFilter[] inputFilters,
-                                     String encodingName) {
-        if (encodingName.equals("identity")) {
-            // Skip
-        } else if (encodingName.equals("chunked")) {
-            inputBuffer.addActiveFilter
-                (inputFilters[Constants.CHUNKED_FILTER]);
-            contentDelimitation = true;
-        } else {
-            for (int i = 2; i < inputFilters.length; i++) {
-                if (inputFilters[i].getEncodingName()
-                    .toString().equals(encodingName)) {
-                    inputBuffer.addActiveFilter(inputFilters[i]);
-                    return true;
-                }
-            }
-            return false;
-        }
-        return true;
-    }
-
-
-    /**
-     * Add input or output filter.
-     *
-     * @param className class name of the filter
-     */
-    protected void addFilter(String className) {
-        try {
-            Class<?> clazz = Class.forName(className);
-            Object obj = clazz.newInstance();
-            if (obj instanceof InputFilter) {
-                inputBuffer.addFilter((InputFilter) obj);
-            } else if (obj instanceof OutputFilter) {
-                outputBuffer.addFilter((OutputFilter) obj);
-            } else {
-                log.warn(sm.getString("http11processor.filter.unknown", 
className));
-            }
-        } catch (Exception e) {
-            log.error(sm.getString("http11processor.filter.error", className), 
e);
-        }
-    }
-
-    /**
      * Parse host.
      */
     protected void parseHost(MessageBytes valueMB) {
@@ -1124,6 +1075,16 @@ public class Http11Processor extends Abs
 
     }
 
+    @Override
+    protected AbstractInputBuffer getInputBuffer() {
+        return inputBuffer;
+    }
+
+    @Override
+    protected AbstractOutputBuffer getOutputBuffer() {
+        return outputBuffer;
+    }
+
     /**
      * Set the socket buffer flag.
      * @Override



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

Reply via email to