You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2011/05/18 14:35:33 UTC
svn commit: r1124219 - in
/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http:
impl/ impl/io/ io/
Author: olegk
Date: Wed May 18 12:35:32 2011
New Revision: 1124219
URL: http://svn.apache.org/viewvc?rev=1124219&view=rev
Log:
Generified message parsers and writers
Modified:
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageParser.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageWriter.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestParser.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestWriter.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseParser.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseWriter.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageParser.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageWriter.java
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpClientConnection.java Wed May 18 12:35:32 2011
@@ -76,8 +76,8 @@ public abstract class AbstractHttpClient
private SessionInputBuffer inbuffer = null;
private SessionOutputBuffer outbuffer = null;
private EofSensor eofSensor = null;
- private HttpMessageParser responseParser = null;
- private HttpMessageWriter requestWriter = null;
+ private HttpMessageParser<HttpResponse> responseParser = null;
+ private HttpMessageWriter<HttpRequest> requestWriter = null;
private HttpConnectionMetricsImpl metrics = null;
/**
@@ -159,7 +159,7 @@ public abstract class AbstractHttpClient
* @param params HTTP parameters.
* @return HTTP message parser.
*/
- protected HttpMessageParser createResponseParser(
+ protected HttpMessageParser<HttpResponse> createResponseParser(
final SessionInputBuffer buffer,
final HttpResponseFactory responseFactory,
final HttpParams params) {
@@ -179,7 +179,7 @@ public abstract class AbstractHttpClient
* @param params HTTP parameters
* @return HTTP message writer
*/
- protected HttpMessageWriter createRequestWriter(
+ protected HttpMessageWriter<HttpRequest> createRequestWriter(
final SessionOutputBuffer buffer,
final HttpParams params) {
return new HttpRequestWriter(buffer, null, params);
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/AbstractHttpServerConnection.java Wed May 18 12:35:32 2011
@@ -76,8 +76,8 @@ public abstract class AbstractHttpServer
private SessionInputBuffer inbuffer = null;
private SessionOutputBuffer outbuffer = null;
private EofSensor eofSensor = null;
- private HttpMessageParser requestParser = null;
- private HttpMessageWriter responseWriter = null;
+ private HttpMessageParser<HttpRequest> requestParser = null;
+ private HttpMessageWriter<HttpResponse> responseWriter = null;
private HttpConnectionMetricsImpl metrics = null;
/**
@@ -159,7 +159,7 @@ public abstract class AbstractHttpServer
* @param params HTTP parameters.
* @return HTTP message parser.
*/
- protected HttpMessageParser createRequestParser(
+ protected HttpMessageParser<HttpRequest> createRequestParser(
final SessionInputBuffer buffer,
final HttpRequestFactory requestFactory,
final HttpParams params) {
@@ -179,7 +179,7 @@ public abstract class AbstractHttpServer
* @param params HTTP parameters
* @return HTTP message writer
*/
- protected HttpMessageWriter createResponseWriter(
+ protected HttpMessageWriter<HttpResponse> createResponseWriter(
final SessionOutputBuffer buffer,
final HttpParams params) {
return new HttpResponseWriter(buffer, null, params);
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageParser.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageParser.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageParser.java Wed May 18 12:35:32 2011
@@ -57,7 +57,7 @@ import org.apache.http.util.CharArrayBuf
*
* @since 4.0
*/
-public abstract class AbstractMessageParser implements HttpMessageParser {
+public abstract class AbstractMessageParser<T extends HttpMessage> implements HttpMessageParser<T> {
private static final int HEAD_LINE = 0;
private static final int HEADERS = 1;
@@ -69,7 +69,7 @@ public abstract class AbstractMessagePar
protected final LineParser lineParser;
private int state;
- private HttpMessage message;
+ private T message;
/**
* Creates an instance of this class.
@@ -241,10 +241,10 @@ public abstract class AbstractMessagePar
* @throws HttpException in case of HTTP protocol violation.
* @throws ParseException in case of a parse error.
*/
- protected abstract HttpMessage parseHead(SessionInputBuffer sessionBuffer)
+ protected abstract T parseHead(SessionInputBuffer sessionBuffer)
throws IOException, HttpException, ParseException;
- public HttpMessage parse() throws IOException, HttpException {
+ public T parse() throws IOException, HttpException {
int st = this.state;
switch (st) {
case HEAD_LINE:
@@ -263,7 +263,7 @@ public abstract class AbstractMessagePar
this.lineParser,
this.headerLines);
this.message.setHeaders(headers);
- HttpMessage result = this.message;
+ T result = this.message;
this.message = null;
this.headerLines.clear();
this.state = HEAD_LINE;
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageWriter.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageWriter.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/AbstractMessageWriter.java Wed May 18 12:35:32 2011
@@ -46,7 +46,7 @@ import org.apache.http.util.CharArrayBuf
*
* @since 4.0
*/
-public abstract class AbstractMessageWriter implements HttpMessageWriter {
+public abstract class AbstractMessageWriter<T extends HttpMessage> implements HttpMessageWriter<T> {
protected final SessionOutputBuffer sessionBuffer;
protected final CharArrayBuffer lineBuf;
@@ -79,10 +79,9 @@ public abstract class AbstractMessageWri
* @param message the message whose first line is to be written out.
* @throws IOException in case of an I/O error.
*/
- protected abstract void writeHeadLine(HttpMessage message) throws IOException;
+ protected abstract void writeHeadLine(T message) throws IOException;
- public void write(
- final HttpMessage message) throws IOException, HttpException {
+ public void write(final T message) throws IOException, HttpException {
if (message == null) {
throw new IllegalArgumentException("HTTP message may not be null");
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestParser.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestParser.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestParser.java Wed May 18 12:35:32 2011
@@ -31,7 +31,6 @@ import java.io.IOException;
import org.apache.http.ConnectionClosedException;
import org.apache.http.HttpException;
-import org.apache.http.HttpMessage;
import org.apache.http.HttpRequest;
import org.apache.http.HttpRequestFactory;
import org.apache.http.RequestLine;
@@ -55,7 +54,7 @@ import org.apache.http.util.CharArrayBuf
*
* @since 4.0
*/
-public class HttpRequestParser extends AbstractMessageParser {
+public class HttpRequestParser extends AbstractMessageParser<HttpRequest> {
private final HttpRequestFactory requestFactory;
private final CharArrayBuffer lineBuf;
@@ -83,7 +82,7 @@ public class HttpRequestParser extends A
}
@Override
- protected HttpMessage parseHead(
+ protected HttpRequest parseHead(
final SessionInputBuffer sessionBuffer)
throws IOException, HttpException, ParseException {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestWriter.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestWriter.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpRequestWriter.java Wed May 18 12:35:32 2011
@@ -29,7 +29,6 @@ package org.apache.http.impl.io;
import java.io.IOException;
-import org.apache.http.HttpMessage;
import org.apache.http.HttpRequest;
import org.apache.http.io.SessionOutputBuffer;
import org.apache.http.message.LineFormatter;
@@ -41,7 +40,7 @@ import org.apache.http.params.HttpParams
*
* @since 4.0
*/
-public class HttpRequestWriter extends AbstractMessageWriter {
+public class HttpRequestWriter extends AbstractMessageWriter<HttpRequest> {
public HttpRequestWriter(final SessionOutputBuffer buffer,
final LineFormatter formatter,
@@ -50,11 +49,8 @@ public class HttpRequestWriter extends A
}
@Override
- protected void writeHeadLine(final HttpMessage message)
- throws IOException {
-
- lineFormatter.formatRequestLine(this.lineBuf,
- ((HttpRequest) message).getRequestLine());
+ protected void writeHeadLine(final HttpRequest message) throws IOException {
+ lineFormatter.formatRequestLine(this.lineBuf, message.getRequestLine());
this.sessionBuffer.writeLine(this.lineBuf);
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseParser.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseParser.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseParser.java Wed May 18 12:35:32 2011
@@ -30,7 +30,6 @@ package org.apache.http.impl.io;
import java.io.IOException;
import org.apache.http.HttpException;
-import org.apache.http.HttpMessage;
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseFactory;
import org.apache.http.NoHttpResponseException;
@@ -55,7 +54,7 @@ import org.apache.http.util.CharArrayBuf
*
* @since 4.0
*/
-public class HttpResponseParser extends AbstractMessageParser {
+public class HttpResponseParser extends AbstractMessageParser<HttpResponse> {
private final HttpResponseFactory responseFactory;
private final CharArrayBuffer lineBuf;
@@ -83,7 +82,7 @@ public class HttpResponseParser extends
}
@Override
- protected HttpMessage parseHead(
+ protected HttpResponse parseHead(
final SessionInputBuffer sessionBuffer)
throws IOException, HttpException, ParseException {
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseWriter.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseWriter.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/impl/io/HttpResponseWriter.java Wed May 18 12:35:32 2011
@@ -29,7 +29,6 @@ package org.apache.http.impl.io;
import java.io.IOException;
-import org.apache.http.HttpMessage;
import org.apache.http.HttpResponse;
import org.apache.http.io.SessionOutputBuffer;
import org.apache.http.message.LineFormatter;
@@ -41,7 +40,7 @@ import org.apache.http.params.HttpParams
*
* @since 4.0
*/
-public class HttpResponseWriter extends AbstractMessageWriter {
+public class HttpResponseWriter extends AbstractMessageWriter<HttpResponse> {
public HttpResponseWriter(final SessionOutputBuffer buffer,
final LineFormatter formatter,
@@ -50,11 +49,8 @@ public class HttpResponseWriter extends
}
@Override
- protected void writeHeadLine(final HttpMessage message)
- throws IOException {
-
- lineFormatter.formatStatusLine(this.lineBuf,
- ((HttpResponse) message).getStatusLine());
+ protected void writeHeadLine(final HttpResponse message) throws IOException {
+ lineFormatter.formatStatusLine(this.lineBuf, message.getStatusLine());
this.sessionBuffer.writeLine(this.lineBuf);
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageParser.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageParser.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageParser.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageParser.java Wed May 18 12:35:32 2011
@@ -38,7 +38,7 @@ import org.apache.http.HttpMessage;
*
* @since 4.0
*/
-public interface HttpMessageParser {
+public interface HttpMessageParser<T extends HttpMessage> {
/**
* Generates an instance of {@link HttpMessage} from the underlying data
@@ -48,7 +48,7 @@ public interface HttpMessageParser {
* @throws IOException in case of an I/O error
* @throws HttpException in case of HTTP protocol violation
*/
- HttpMessage parse()
+ T parse()
throws IOException, HttpException;
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageWriter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageWriter.java?rev=1124219&r1=1124218&r2=1124219&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageWriter.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/io/HttpMessageWriter.java Wed May 18 12:35:32 2011
@@ -38,7 +38,7 @@ import org.apache.http.HttpMessage;
*
* @since 4.0
*/
-public interface HttpMessageWriter {
+public interface HttpMessageWriter<T extends HttpMessage> {
/**
* Serializes an instance of {@link HttpMessage} to the underlying data
@@ -48,7 +48,7 @@ public interface HttpMessageWriter {
* @throws IOException in case of an I/O error
* @throws HttpException in case of HTTP protocol violation
*/
- void write(HttpMessage message)
+ void write(T message)
throws IOException, HttpException;
}