You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ro...@apache.org on 2007/08/21 12:28:38 UTC

svn commit: r568051 - in /jakarta/httpcomponents/httpcore/trunk/module-main/src: main/java/org/apache/http/message/ test/java/org/apache/http/message/

Author: rolandw
Date: Tue Aug 21 03:28:24 2007
New Revision: 568051

URL: http://svn.apache.org/viewvc?rev=568051&view=rev
Log:
removed static parser code from BasicRequestLine, adjusted test cases

Added:
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineParser.java
      - copied, changed from r568005, jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java
Modified:
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeader.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderElement.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineParser.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicRequestLine.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestAllMessage.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeader.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeader.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeader.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeader.java Tue Aug 21 03:28:24 2007
@@ -126,7 +126,7 @@
     /**
      * Returns an array of {@link HeaderElement}s constructed from my value.
      *
-     * @see BasicHeaderElement#parseAll
+     * @see BasicHeaderValueParser#parseElements
      * 
      * @return an array of header elements
      */

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderElement.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderElement.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderElement.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderElement.java Tue Aug 21 03:28:24 2007
@@ -71,10 +71,6 @@
  * both a name/value pair (value may be <tt>null</tt>) and optionally
  * a set of additional parameters.
  * </p>
- * <p>
- * This class also exposes a {@link #parse} method for parsing a
- * {@link org.apache.http.Header} value into an array of elements.
- * </p>
  *
  * @author <a href="mailto:bcholmes@interlog.com">B.C. Holmes</a>
  * @author <a href="mailto:jericho@thinkfree.com">Park, Sung-Gu</a>

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHeaderValueParser.java Tue Aug 21 03:28:24 2007
@@ -381,7 +381,7 @@
 
     /**
      * Creates a name-value pair.
-     * Called from {@link #parseNameValue}.
+     * Called from {@link #parseNameValuePair}.
      *
      * @param name      the name
      * @param value     the value, or <code>null</code>

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineParser.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineParser.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineParser.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicLineParser.java Tue Aug 21 03:28:24 2007
@@ -78,6 +78,25 @@
     // public default constructor
 
 
+    public final static
+        HttpVersion parseProtocolVersion(String value,
+                                         LineParser parser)
+        throws ProtocolException {
+
+        if (value == null) {
+            throw new IllegalArgumentException
+                ("Value to parse may not be null.");
+        }
+
+        if (parser == null)
+            parser = BasicLineParser.DEFAULT;
+
+        CharArrayBuffer buffer = new CharArrayBuffer(value.length());
+        buffer.append(value);
+        return parser.parseProtocolVersion(buffer, 0, buffer.length());
+    }
+
+
     // non-javadoc, see interface LineParser
     public HttpVersion parseProtocolVersion(final CharArrayBuffer buffer,
                                             final int indexFrom,
@@ -153,6 +172,26 @@
     }
 
 
+
+    public final static
+        RequestLine parseRequestLine(String value,
+                                     LineParser parser)
+        throws ProtocolException {
+
+        if (value == null) {
+            throw new IllegalArgumentException
+                ("Value to parse may not be null.");
+        }
+
+        if (parser == null)
+            parser = BasicLineParser.DEFAULT;
+
+        CharArrayBuffer buffer = new CharArrayBuffer(value.length());
+        buffer.append(value);
+        return parser.parseRequestLine(buffer, 0, buffer.length());
+    }
+
+
     /**
      * Parses a request line.
      *
@@ -228,6 +267,26 @@
     }
 
 
+
+    public final static
+        StatusLine parseStatusLine(String value,
+                                   LineParser parser)
+        throws ProtocolException {
+
+        if (value == null) {
+            throw new IllegalArgumentException
+                ("Value to parse may not be null.");
+        }
+
+        if (parser == null)
+            parser = BasicLineParser.DEFAULT;
+
+        CharArrayBuffer buffer = new CharArrayBuffer(value.length());
+        buffer.append(value);
+        return parser.parseStatusLine(buffer, 0, buffer.length());
+    }
+
+
     // non-javadoc, see interface LineParser
     public StatusLine parseStatusLine(final CharArrayBuffer buffer,
                                       final int indexFrom,
@@ -312,6 +371,26 @@
     protected StatusLine createStatusLine(HttpVersion ver,
                                           int status, String reason) {
         return new BasicStatusLine(ver, status, reason);
+    }
+
+
+
+    public final static
+        Header parseHeader(String value, 
+                           LineParser parser)
+        throws ProtocolException {
+
+        if (value == null) {
+            throw new IllegalArgumentException
+                ("Value to parse may not be null.");
+        }
+
+        if (parser == null)
+            parser = BasicLineParser.DEFAULT;
+
+        CharArrayBuffer buffer = new CharArrayBuffer(value.length());
+        buffer.append(value);
+        return parser.parseHeader(buffer);
     }
 
 

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicRequestLine.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicRequestLine.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicRequestLine.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicRequestLine.java Tue Aug 21 03:28:24 2007
@@ -94,60 +94,6 @@
         return buffer.toString();
     }
     
-    public static RequestLine parse(
-            final CharArrayBuffer buffer, final int indexFrom, final int indexTo) 
-            throws ProtocolException {
-        if (buffer == null) {
-            throw new IllegalArgumentException("Char array buffer may not be null");
-        }
-        if (indexFrom < 0) {
-            throw new IndexOutOfBoundsException();
-        }
-        if (indexTo > buffer.length()) {
-            throw new IndexOutOfBoundsException();
-        }
-        if (indexFrom > indexTo) {
-            throw new IndexOutOfBoundsException();
-        }
-        try {
-            int i = indexFrom;
-            while (HTTP.isWhitespace(buffer.charAt(i))) {
-                i++;
-            }
-            int blank = buffer.indexOf(' ', i, indexTo);
-            if (blank < 0) {
-                throw new ProtocolException("Invalid request line: " + 
-                        buffer.substring(indexFrom, indexTo));
-            }
-            String method = buffer.substringTrimmed(i, blank);
-            i = blank;
-            while (HTTP.isWhitespace(buffer.charAt(i))) {
-                i++;
-            }
-            blank = buffer.indexOf(' ', i, indexTo);
-            if (blank < 0) {
-                throw new ProtocolException("Invalid request line: " + 
-                        buffer.substring(indexFrom, indexTo));
-            }
-            String uri = buffer.substringTrimmed(i, blank);
-            HttpVersion ver = BasicHttpVersionFormat.parse(buffer, blank, indexTo);
-            return new BasicRequestLine(method, uri, ver);
-        } catch (IndexOutOfBoundsException e) {
-            throw new ProtocolException("Invalid request line: " + 
-                    buffer.substring(indexFrom, indexTo)); 
-        }
-    }
-
-    public static final RequestLine parse(final String s)
-            throws ProtocolException {
-        if (s == null) {
-            throw new IllegalArgumentException("String may not be null");
-        }
-        CharArrayBuffer buffer = new CharArrayBuffer(s.length()); 
-        buffer.append(s);
-        return parse(buffer, 0, buffer.length());
-    }
-    
     public static void format(final CharArrayBuffer buffer, final RequestLine requestline) {
         if (buffer == null) {
             throw new IllegalArgumentException("String buffer may not be null");

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestAllMessage.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestAllMessage.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestAllMessage.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestAllMessage.java Tue Aug 21 03:28:24 2007
@@ -47,6 +47,7 @@
         suite.addTest(TestStatusLine.suite());
         suite.addTest(TestRequestLine.suite());
         suite.addTest(TestHttpVersion.suite());
+        suite.addTest(TestBasicLineParser.suite());
         suite.addTest(TestAbstractMessage.suite());
         suite.addTest(TestBasicMessages.suite());
 

Copied: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineParser.java (from r568005, jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java)
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineParser.java?p2=jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineParser.java&p1=jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java&r1=568005&r2=568051&rev=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicLineParser.java Tue Aug 21 03:28:24 2007
@@ -39,149 +39,110 @@
 import junit.framework.*;
 
 /**
- * Simple tests for {@link RequestLine}.
+ * Tests for {@link BasicLineParser}.
  *
  * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
  *
  * @version $Revision$
  */
-public class TestRequestLine extends TestCase {
+public class TestBasicLineParser extends TestCase {
 
     // ------------------------------------------------------------ Constructor
-    public TestRequestLine(String testName) {
+    public TestBasicLineParser(String testName) {
         super(testName);
     }
 
     // ------------------------------------------------------------------- Main
     public static void main(String args[]) {
-        String[] testCaseName = { TestRequestLine.class.getName() };
+        String[] testCaseName = { TestBasicLineParser.class.getName() };
         junit.textui.TestRunner.main(testCaseName);
     }
 
     // ------------------------------------------------------- TestCase Methods
 
     public static Test suite() {
-        return new TestSuite(TestRequestLine.class);
+        return new TestSuite(TestBasicLineParser.class);
     }
 
-    public void testConstructor() {
-        RequestLine requestline = new BasicRequestLine("GET", "/stuff", HttpVersion.HTTP_1_1);
-        assertEquals("GET", requestline.getMethod()); 
-        assertEquals("/stuff", requestline.getUri()); 
-        assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion()); 
-    }
-        
-    public void testConstructorInvalidInput() {
-        try {
-            new BasicRequestLine(null, "/stuff", HttpVersion.HTTP_1_1);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IllegalArgumentException e) { /* expected */ }
-        try {
-            new BasicRequestLine("GEt", null, HttpVersion.HTTP_1_1);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IllegalArgumentException e) { /* expected */ }
-        try {
-            new BasicRequestLine("GET", "/stuff", (HttpVersion)null);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IllegalArgumentException e) { /* expected */ }
-    }
         
-    public void testParseSuccess() throws Exception {
+    public void testRLParseSuccess() throws Exception {
         //typical request line
-        RequestLine requestline = BasicRequestLine.parse("GET /stuff HTTP/1.1");
+        RequestLine requestline = BasicLineParser.parseRequestLine
+            ("GET /stuff HTTP/1.1", null);
         assertEquals("GET /stuff HTTP/1.1", requestline.toString());
         assertEquals("GET", requestline.getMethod());
         assertEquals("/stuff", requestline.getUri());
         assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
 
         //Lots of blanks
-        requestline = BasicRequestLine.parse("  GET    /stuff   HTTP/1.1   ");
+        requestline = BasicLineParser.parseRequestLine
+            ("  GET    /stuff   HTTP/1.1   ", null);
         assertEquals("GET /stuff HTTP/1.1", requestline.toString());
         assertEquals("GET", requestline.getMethod());
         assertEquals("/stuff", requestline.getUri());
         assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
 
         //this is not strictly valid, but is lienent
-        requestline = BasicRequestLine.parse("\rGET /stuff HTTP/1.1");
+        requestline = BasicLineParser.parseRequestLine
+            ("\rGET /stuff HTTP/1.1", null);
         assertEquals("GET", requestline.getMethod());
         assertEquals("/stuff", requestline.getUri());
         assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
     }
 
-    public void testParseFailure() throws Exception {
+    public void testRLParseFailure() throws Exception {
         try {
-            BasicRequestLine.parse("    ");
+            BasicLineParser.parseRequestLine("    ", null);
             fail();
         } catch (HttpException e) { /* expected */ }
 
         try {
-            BasicRequestLine.parse("  GET");
+            BasicLineParser.parseRequestLine("  GET", null);
             fail();
         } catch (HttpException e) { /* expected */ }
 
         try {
-            BasicRequestLine.parse("GET /stuff");
+            BasicLineParser.parseRequestLine("GET /stuff", null);
             fail();
         } catch (HttpException e) { /* expected */ }
 
         try {
-            BasicRequestLine.parse("GET/stuff HTTP/1.1");
+            BasicLineParser.parseRequestLine("GET/stuff HTTP/1.1", null);
             fail();
         } catch (HttpException e) { /* expected */ }
     }
 
-    public void testParseInvalidInput() throws Exception {
+    public void testRLParseInvalidInput() throws Exception {
         CharArrayBuffer buffer = new CharArrayBuffer(32);
         buffer.append("GET /stuff HTTP/1.1");
         try {
-            BasicRequestLine.parse(null, 0, 0);
+            BasicLineParser.parseRequestLine(null, null);
             fail("IllegalArgumentException should have been thrown");
         } catch (IllegalArgumentException ex) {
             // expected
         }
         try {
-            BasicRequestLine.parse(null);
+            BasicLineParser.DEFAULT.parseRequestLine(null, 0, 0);
             fail("IllegalArgumentException should have been thrown");
         } catch (IllegalArgumentException ex) {
             // expected
         }
         try {
-            BasicRequestLine.parse(buffer, -1, 0);
+            BasicLineParser.DEFAULT.parseRequestLine(buffer, -1, 0);
             fail("IllegalArgumentException should have been thrown");
         } catch (IndexOutOfBoundsException ex) {
             // expected
         }
         try {
-            BasicRequestLine.parse(buffer, 0, 1000);
+            BasicLineParser.DEFAULT.parseRequestLine(buffer, 0, 1000);
             fail("IllegalArgumentException should have been thrown");
         } catch (IndexOutOfBoundsException ex) {
             // expected
         }
         try {
-            BasicRequestLine.parse(buffer, 2, 1);
+            BasicLineParser.DEFAULT.parseRequestLine(buffer, 2, 1);
             fail("IllegalArgumentException should have been thrown");
         } catch (IndexOutOfBoundsException ex) {
-            // expected
-        }
-    }
-
-    public void testFormatting() throws Exception {
-        RequestLine requestline = new BasicRequestLine("GET", "/stuff", HttpVersion.HTTP_1_1);
-        String s = BasicRequestLine.format(requestline);
-        assertEquals("GET /stuff HTTP/1.1", s);
-    }
-    
-    public void testFormattingInvalidInput() throws Exception {
-        try {
-            BasicRequestLine.format(null, new BasicRequestLine("GET", "/stuff", HttpVersion.HTTP_1_1));
-            fail("IllegalArgumentException should habe been thrown");
-        } catch (IllegalArgumentException ex) {
-            // expected
-        }
-        try {
-            BasicRequestLine.format(new CharArrayBuffer(10), (RequestLine) 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/TestRequestLine.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java?rev=568051&r1=568050&r2=568051&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestRequestLine.java Tue Aug 21 03:28:24 2007
@@ -77,92 +77,13 @@
             fail("IllegalArgumentException should have been thrown");
         } catch (IllegalArgumentException e) { /* expected */ }
         try {
-            new BasicRequestLine("GEt", null, HttpVersion.HTTP_1_1);
+            new BasicRequestLine("GET", null, HttpVersion.HTTP_1_1);
             fail("IllegalArgumentException should have been thrown");
         } catch (IllegalArgumentException e) { /* expected */ }
         try {
             new BasicRequestLine("GET", "/stuff", (HttpVersion)null);
             fail("IllegalArgumentException should have been thrown");
         } catch (IllegalArgumentException e) { /* expected */ }
-    }
-        
-    public void testParseSuccess() throws Exception {
-        //typical request line
-        RequestLine requestline = BasicRequestLine.parse("GET /stuff HTTP/1.1");
-        assertEquals("GET /stuff HTTP/1.1", requestline.toString());
-        assertEquals("GET", requestline.getMethod());
-        assertEquals("/stuff", requestline.getUri());
-        assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
-
-        //Lots of blanks
-        requestline = BasicRequestLine.parse("  GET    /stuff   HTTP/1.1   ");
-        assertEquals("GET /stuff HTTP/1.1", requestline.toString());
-        assertEquals("GET", requestline.getMethod());
-        assertEquals("/stuff", requestline.getUri());
-        assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
-
-        //this is not strictly valid, but is lienent
-        requestline = BasicRequestLine.parse("\rGET /stuff HTTP/1.1");
-        assertEquals("GET", requestline.getMethod());
-        assertEquals("/stuff", requestline.getUri());
-        assertEquals(HttpVersion.HTTP_1_1, requestline.getHttpVersion());
-    }
-
-    public void testParseFailure() throws Exception {
-        try {
-            BasicRequestLine.parse("    ");
-            fail();
-        } catch (HttpException e) { /* expected */ }
-
-        try {
-            BasicRequestLine.parse("  GET");
-            fail();
-        } catch (HttpException e) { /* expected */ }
-
-        try {
-            BasicRequestLine.parse("GET /stuff");
-            fail();
-        } catch (HttpException e) { /* expected */ }
-
-        try {
-            BasicRequestLine.parse("GET/stuff HTTP/1.1");
-            fail();
-        } catch (HttpException e) { /* expected */ }
-    }
-
-    public void testParseInvalidInput() throws Exception {
-        CharArrayBuffer buffer = new CharArrayBuffer(32);
-        buffer.append("GET /stuff HTTP/1.1");
-        try {
-            BasicRequestLine.parse(null, 0, 0);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IllegalArgumentException ex) {
-            // expected
-        }
-        try {
-            BasicRequestLine.parse(null);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IllegalArgumentException ex) {
-            // expected
-        }
-        try {
-            BasicRequestLine.parse(buffer, -1, 0);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IndexOutOfBoundsException ex) {
-            // expected
-        }
-        try {
-            BasicRequestLine.parse(buffer, 0, 1000);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IndexOutOfBoundsException ex) {
-            // expected
-        }
-        try {
-            BasicRequestLine.parse(buffer, 2, 1);
-            fail("IllegalArgumentException should have been thrown");
-        } catch (IndexOutOfBoundsException ex) {
-            // expected
-        }
     }
 
     public void testFormatting() throws Exception {