[prev in list] [next in list] [prev in thread] [next in thread]
List: httpcomponents-commits
Subject: svn commit: r569681 - in
From: rolandw () apache ! org
Date: 2007-08-25 14:42:23
Message-ID: 20070825144223.C84F91A9832 () eris ! apache ! org
[Download RAW message or body]
Author: rolandw
Date: Sat Aug 25 07:42:22 2007
New Revision: 569681
URL: http://svn.apache.org/viewvc?rev=569681&view=rev
Log:
removed static formatting from BasicStatusLine, adjusted test cases
Modified:
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineFormatter.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicStatusLine.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/LineFormatter.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineFormatter.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestStatusLine.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineFormatter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/sr \
c/main/java/org/apache/http/message/BasicLineFormatter.java?rev=569681&r1=569680&r2=569681&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineFormatter.java \
(original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineFormatter.java \
Sat Aug 25 07:42:22 2007 @@ -119,6 +119,7 @@
// can't use initBuffer, that would clear the argument!
CharArrayBuffer result = buffer;
+ //@@@ guess the length in an extra method
final int len = 8; // room for "HTTP/1.1"
if (result == null) {
result = new CharArrayBuffer(len);
@@ -146,12 +147,65 @@
+ /**
+ * Formats a status line.
+ *
+ * @param statline the status line to format
+ * @param formatter the formatter to use, or
+ * <code>null</code> for the
+ * {@link #DEFAULT default}
+ *
+ * @return the formatted status line
+ */
+ public final static String formatStatusLine(final StatusLine statline,
+ LineFormatter formatter) {
+ if (formatter == null)
+ formatter = BasicLineFormatter.DEFAULT;
+ return formatter.formatStatusLine(null, statline).toString();
+ }
+
+
// non-javadoc, see interface LineFormatter
public CharArrayBuffer formatStatusLine(CharArrayBuffer buffer,
StatusLine statline) {
+ if (statline == null) {
+ throw new IllegalArgumentException
+ ("Status line must not be null.");
+ }
+
CharArrayBuffer result = initBuffer(buffer);
- BasicStatusLine.format(result, statline); //@@@ move code here
+ doFormatStatusLine(result, statline);
+
return result;
+ }
+
+
+ /**
+ * Actually formats a status line.
+ * Called from {@link #formatStatusLine}.
+ *
+ * @param buffer the empty buffer into which to format,
+ * never <code>null</code>
+ * @param header the status line to format, never <code>null</code>
+ */
+ protected void doFormatStatusLine(CharArrayBuffer buffer,
+ StatusLine statline) {
+ //@@@ let the protocol version length be guessed elsewhere
+ //@@@ guess the length in an extra method?
+ int len = 8 + 1 + 3 + 1; // room for "HTTP/1.1 200 "
+ final String reason = statline.getReasonPhrase();
+ if (reason != null) {
+ len += reason.length();
+ }
+ buffer.ensureCapacity(len);
+
+ appendProtocolVersion(buffer, statline.getHttpVersion());
+ buffer.append(' ');
+ buffer.append(Integer.toString(statline.getStatusCode()));
+ buffer.append(' '); // keep whitespace even if reason phrase is empty
+ if (reason != null) {
+ buffer.append(reason);
+ }
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicStatusLine.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/sr \
c/main/java/org/apache/http/message/BasicStatusLine.java?rev=569681&r1=569680&r2=569681&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicStatusLine.java \
(original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicStatusLine.java \
Sat Aug 25 07:42:22 2007 @@ -115,37 +115,8 @@
}
public String toString() {
- CharArrayBuffer buffer = new CharArrayBuffer(64);
- buffer.append(this.httpVersion);
- buffer.append(' ');
- buffer.append(Integer.toString(this.statusCode));
- if (this.reasonPhrase != null && this.reasonPhrase.length() > 0) {
- buffer.append(' ');
- buffer.append(this.reasonPhrase);
- }
- return buffer.toString();
+ // no need for non-default formatting in toString()
+ return BasicLineFormatter.DEFAULT
+ .formatStatusLine(null, this).toString();
}
-
- /*public@@@*/ static void format(final CharArrayBuffer buffer, final StatusLine \
statusline) {
- if (buffer == null) {
- throw new IllegalArgumentException("String buffer may not be null");
- }
- if (statusline == null) {
- throw new IllegalArgumentException("Status line may not be null");
- }
- BasicHttpVersionFormat.format(buffer, statusline.getHttpVersion());
- buffer.append(' ');
- buffer.append(Integer.toString(statusline.getStatusCode()));
- buffer.append(' '); // keep whitespace even if reason phrase is empty
- if (statusline.getReasonPhrase() != null) {
- buffer.append(statusline.getReasonPhrase());
- }
- }
-
- /*public@@@*/ static String format(final StatusLine statusline) {
- CharArrayBuffer buffer = new CharArrayBuffer(32);
- format(buffer, statusline);
- return buffer.toString();
- }
-
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/LineFormatter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/sr \
c/main/java/org/apache/http/message/LineFormatter.java?rev=569681&r1=569680&r2=569681&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/LineFormatter.java \
(original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/LineFormatter.java \
Sat Aug 25 07:42:22 2007 @@ -87,6 +87,8 @@
*
* @return a buffer with the formatted protocol version appended.
* The caller is allowed to modify the result buffer.
+ * If the <code>buffer</code> argument is not <code>null</code>,
+ * the returned buffer is the argument buffer.
*/
CharArrayBuffer appendProtocolVersion(CharArrayBuffer buffer,
HttpVersion version)
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineFormatter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/sr \
c/test/java/org/apache/http/message/TestBasicLineFormatter.java?rev=569681&r1=569680&r2=569681&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineFormatter.java \
(original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineFormatter.java \
Sat Aug 25 07:42:22 2007 @@ -30,9 +30,11 @@
package org.apache.http.message;
-import org.apache.http.Header;
+import org.apache.http.HttpVersion;
+import org.apache.http.HttpStatus;
import org.apache.http.RequestLine;
import org.apache.http.StatusLine;
+import org.apache.http.Header;
import org.apache.http.util.CharArrayBuffer;
import junit.framework.*;
@@ -63,6 +65,34 @@
return new TestSuite(TestBasicLineFormatter.class);
}
+
+ public void testSLFormatting() throws Exception {
+ StatusLine statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, \
HttpStatus.SC_OK, "OK"); + String s = \
BasicLineFormatter.formatStatusLine(statusline, null); + \
assertEquals("HTTP/1.1 200 OK", s); + statusline = new \
BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, null); + s = \
BasicLineFormatter.formatStatusLine(statusline, null); + \
assertEquals("HTTP/1.1 200 ", s); + // see "testSLParseSuccess" in \
TestBasicLineParser: + // trailing space is correct
+ }
+
+ public void testSLFormattingInvalidInput() throws Exception {
+ try {
+ BasicLineFormatter.formatStatusLine
+ (null, BasicLineFormatter.DEFAULT);
+ fail("IllegalArgumentException should habe been thrown");
+ } catch (IllegalArgumentException ex) {
+ // expected
+ }
+ try {
+ BasicLineFormatter.DEFAULT.formatStatusLine
+ (new CharArrayBuffer(10), (StatusLine) null);
+ fail("IllegalArgumentException should habe been thrown");
+ } catch (IllegalArgumentException ex) {
+ // expected
+ }
+ }
public void testHeaderFormatting() throws Exception {
@@ -84,7 +114,7 @@
}
try {
BasicLineFormatter.DEFAULT.formatHeader
- (new CharArrayBuffer(10), null);
+ (new CharArrayBuffer(10), (Header) null);
fail("IllegalArgumentException should habe been thrown");
} catch (IllegalArgumentException ex) {
// expected
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestStatusLine.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/sr \
c/test/java/org/apache/http/message/TestStatusLine.java?rev=569681&r1=569680&r2=569681&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestStatusLine.java \
(original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestStatusLine.java \
Sat Aug 25 07:42:22 2007 @@ -92,32 +92,7 @@
StatusLine statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, \
HttpStatus.SC_OK, "OK"); assertEquals("HTTP/1.1 200 OK", statusline.toString());
statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, \
null);
- assertEquals("HTTP/1.1 200", statusline.toString());
+ // toString uses default formatting, hence the trailing space
+ assertEquals("HTTP/1.1 200 ", statusline.toString());
}
-
- public void testFormatting() throws Exception {
- StatusLine statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, \
HttpStatus.SC_OK, "OK");
- String s = BasicStatusLine.format(statusline);
- assertEquals("HTTP/1.1 200 OK", s);
- statusline = new BasicStatusLine(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, \
null);
- s = BasicStatusLine.format(statusline);
- assertEquals("HTTP/1.1 200 ", s);
- // compare with "testParseSuccess" above: trailing space is correct
- }
-
- public void testFormattingInvalidInput() throws Exception {
- try {
- BasicStatusLine.format(null, new BasicStatusLine(HttpVersion.HTTP_1_1, \
HttpStatus.SC_OK, "OK"));
- fail("IllegalArgumentException should habe been thrown");
- } catch (IllegalArgumentException ex) {
- // expected
- }
- try {
- BasicStatusLine.format(new CharArrayBuffer(10), (StatusLine) null);
- fail("IllegalArgumentException should habe been thrown");
- } catch (IllegalArgumentException ex) {
- // expected
- }
- }
-
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic