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 2007/12/15 21:49:41 UTC

svn commit: r604514 - in /jakarta/httpcomponents/httpcore/trunk/module-main/src: main/java/org/apache/http/ main/java/org/apache/http/params/ main/java/org/apache/http/protocol/ test/java/org/apache/http/ test/java/org/apache/http/protocol/

Author: olegk
Date: Sat Dec 15 12:49:40 2007
New Revision: 604514

URL: http://svn.apache.org/viewvc?rev=604514&view=rev
Log:
HTTPCORE-133: Clone support
* updated classes in packages o.a.h, o.a.h.params, o.a.h.protocol (HttpHost, ProtocolVersion, BasicHttpParams, BasicHttpProcessor)

Modified:
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpHost.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/ProtocolVersion.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpHost.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpVersion.java
    jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestBasicHttpProcessor.java

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpHost.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpHost.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpHost.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/HttpHost.java Sat Dec 15 12:49:40 2007
@@ -45,7 +45,7 @@
  * 
  * @since 4.0
  */
-public class HttpHost {
+public final class HttpHost implements Cloneable {
 
     /** The default scheme is "http". */
     public static final String DEFAULT_SCHEME_NAME = "http";
@@ -209,4 +209,8 @@
         return hash;
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/ProtocolVersion.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/ProtocolVersion.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/ProtocolVersion.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/ProtocolVersion.java Sat Dec 15 12:49:40 2007
@@ -53,7 +53,7 @@
  * 
  * @version $Revision$
  */
-public class ProtocolVersion implements Serializable {
+public class ProtocolVersion implements Serializable, Cloneable {
 
     private static final long serialVersionUID = 8287599752106796338L;
 
@@ -280,4 +280,8 @@
         return buffer.toString();
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java Sat Dec 15 12:49:40 2007
@@ -49,8 +49,8 @@
  * 
  * @version $Revision$
  */
-public class BasicHttpParams extends AbstractHttpParams
-    implements HttpLinkedParams, Serializable {
+public final class BasicHttpParams extends AbstractHttpParams
+    implements HttpLinkedParams, Serializable, Cloneable {
 
     static final long serialVersionUID = 4571099216197814749L;
 
@@ -171,11 +171,17 @@
      *          are <i>not</i> copied.
      */
     public HttpParams copy() {
-        BasicHttpParams bhp = new BasicHttpParams(this.defaults);
-        copyParams(bhp);
-        return bhp;
+        BasicHttpParams clone = new BasicHttpParams(this.defaults);
+        copyParams(clone);
+        return clone;
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        BasicHttpParams clone = (BasicHttpParams) super.clone();
+        copyParams(clone);
+        return clone;
+    }
+ 
     /**
      * Copies the locally defined parameters to the argument parameters.
      * Default parameters accessible via {@link #getDefaults}

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java Sat Dec 15 12:49:40 2007
@@ -52,8 +52,8 @@
  * 
  * @since 4.0
  */
-public class BasicHttpProcessor implements
-    HttpProcessor, HttpRequestInterceptorList, HttpResponseInterceptorList {
+public final class BasicHttpProcessor implements
+    HttpProcessor, HttpRequestInterceptorList, HttpResponseInterceptorList, Cloneable {
 
     protected List requestInterceptors = null; 
     protected List responseInterceptors = null;
@@ -305,6 +305,17 @@
             }
         }
     }
+
+    protected void copyInterceptors(final BasicHttpProcessor target) {
+        if (this.requestInterceptors != null) {
+            target.requestInterceptors =
+                new ArrayList(this.requestInterceptors);
+        }
+        if (this.responseInterceptors != null) {
+            target.responseInterceptors =
+                new ArrayList(this.responseInterceptors);
+        }
+    }
     
     /**
      * Creates a copy of this instance
@@ -313,14 +324,13 @@
      */
     public BasicHttpProcessor copy() {
         BasicHttpProcessor clone = new BasicHttpProcessor();
-        if (this.requestInterceptors != null) {
-            clone.requestInterceptors =
-                new ArrayList(this.requestInterceptors);
-        }
-        if (this.responseInterceptors != null) {
-            clone.responseInterceptors =
-                new ArrayList(this.responseInterceptors);
-        }
+        copyInterceptors(clone);
+        return clone;
+    }
+    
+    public Object clone() throws CloneNotSupportedException {
+        BasicHttpProcessor clone = (BasicHttpProcessor) super.clone();
+        copyInterceptors(clone);
         return clone;
     }
  

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpHost.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpHost.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpHost.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpHost.java Sat Dec 15 12:49:40 2007
@@ -140,4 +140,10 @@
         assertEquals("somehost:8888", host4.toHostString());
     }
 
+    public void testCloning() throws Exception {
+        HttpHost orig = new HttpHost("somehost", 8080, "https");
+        HttpHost clone = (HttpHost) orig.clone();
+        assertEquals(orig, clone);
+    }
+    
 }

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpVersion.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpVersion.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpVersion.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/TestHttpVersion.java Sat Dec 15 12:49:40 2007
@@ -117,5 +117,11 @@
         assertTrue(HttpVersion.HTTP_1_0.compareToVersion(HttpVersion.HTTP_1_0) == 0);
    }
     
+    public void testCloning() throws Exception {
+        HttpVersion orig = HttpVersion.HTTP_1_1;
+        HttpVersion clone = (HttpVersion) orig.clone();
+        assertEquals(orig, clone);
+    }
+    
 }
 

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestBasicHttpProcessor.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestBasicHttpProcessor.java?rev=604514&r1=604513&r2=604514&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestBasicHttpProcessor.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestBasicHttpProcessor.java Sat Dec 15 12:49:40 2007
@@ -84,8 +84,6 @@
     }
 
     public void testAddTailRequestInterceptorNull() {
-        System.out.println("testAddTailRequestInterceptorNull");
-
         HttpRequestInterceptor itcp = null;
         BasicHttpProcessor instance = new BasicHttpProcessor();
 



Re: svn commit: r604514 - in /jakarta/httpcomponents/httpcore/trunk/module-main/src: main/java/org/apache/http/ main/java/org/apache/http/params/ main/java/org/apache/http/protocol/ test/java/org/apache/http/ test/java/org/apache/http/protocol/

Posted by Roland Weber <os...@dubioso.net>.
sebb wrote:
>>     static final long serialVersionUID = 4571099216197814749L;
> 
> Should perhaps be private?

Yes, these attributes should be private.

> Also, perhaps it should change as there's a new method?

No, additional methods don't change the serialized format
of the class. Only changes to the non-transient attributes
should affect that.

cheers,
  Roland



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Re: svn commit: r604514 - in /jakarta/httpcomponents/httpcore/trunk/module-main/src: main/java/org/apache/http/ main/java/org/apache/http/params/ main/java/org/apache/http/protocol/ test/java/org/apache/http/ test/java/org/apache/http/protocol/

Posted by sebb <se...@gmail.com>.
On 15/12/2007, olegk@apache.org <ol...@apache.org> wrote:
> Author: olegk
> Date: Sat Dec 15 12:49:40 2007
> New Revision: 604514
>
> URL: http://svn.apache.org/viewvc?rev=604514&view=rev
> Log:
> HTTPCORE-133: Clone support
> * updated classes in packages o.a.h, o.a.h.params, o.a.h.protocol (HttpHost, ProtocolVersion, BasicHttpParams, BasicHttpProcessor)
>

...

==============================================================================
> --- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java (original)
> +++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/params/BasicHttpParams.java Sat Dec 15 12:49:40 2007
> @@ -49,8 +49,8 @@
>  *
>  * @version $Revision$
>  */
> -public class BasicHttpParams extends AbstractHttpParams
> -    implements HttpLinkedParams, Serializable {
> +public final class BasicHttpParams extends AbstractHttpParams
> +    implements HttpLinkedParams, Serializable, Cloneable {
>
>     static final long serialVersionUID = 4571099216197814749L;

Should perhaps be private?

Also, perhaps it should change as there's a new method?

> @@ -171,11 +171,17 @@
>      *          are <i>not</i> copied.
>      */
>     public HttpParams copy() {
> -        BasicHttpParams bhp = new BasicHttpParams(this.defaults);
> -        copyParams(bhp);
> -        return bhp;
> +        BasicHttpParams clone = new BasicHttpParams(this.defaults);
> +        copyParams(clone);
> +        return clone;
>     }
>
> +    public Object clone() throws CloneNotSupportedException {
> +        BasicHttpParams clone = (BasicHttpParams) super.clone();
> +        copyParams(clone);
> +        return clone;
> +    }
> +
>     /**
>      * Copies the locally defined parameters to the argument parameters.
>      * Default parameters accessible via {@link #getDefaults}
>
> Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java
> URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/BasicHttpProcessor.java?rev=604514&r1=604513&r2=604514&view=diff
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org