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: [email protected]
For additional commands, e-mail: [email protected]