You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Roland Weber (JIRA)" <ji...@apache.org> on 2006/12/21 14:55:22 UTC

[jira] Updated: (HTTPCLIENT-615) Consider making HostConfiguration immutable

     [ http://issues.apache.org/jira/browse/HTTPCLIENT-615?page=all ]

Roland Weber updated HTTPCLIENT-615:
------------------------------------

    Attachment: 2k6-12-21-hostconfig-1.txt

Here is a take on this one. All attributes in HostConfiguration are final, there are no setters, all synchronization is gone too. The copy constructor is gone, since there is little point in duplicating an immutable object. The call in MultiThreadedHttpConnectionManager is commented out. I didn't want to remove it as I will be grateful for any helpful comments in that class if I have to work on it. HostConfiguration still implements Cloneable, as long as nobody creates a mutable subclass of InetAddress or HttpHost, there shouldn't be a problem with shallow copies.

I did not remove the target host from HttpConfiguration (yet). I tried and had to realize that it would affect plenty of places, most of them in MultiThreadedHCM. Changing DefaultHttpHostConnection to use separate HttpHost and HostConfiguration objects was not a problem. In MTHCM however, HostConfiguration is used as a cache key. The current implementation basically pushes that local cache key implementation into the public API.
I would still prefer to define a local cache key class, passing host and config in as separate arguments. That shouldn't be a major problem when allocating connections, but I'm not sure how to reconstruct the cache key when a connection is released. Actually, I'm not even sure whether that is required at all. It just looked like something I'd have to spend a lot more time on than I wanted to put into this patch. Also, the connection manager parameters will probably be affected by this change.

Let me know what you think about the patch as it is. I consider the second step less urgent.

cheers,
  Roland


> Consider making HostConfiguration immutable
> -------------------------------------------
>
>                 Key: HTTPCLIENT-615
>                 URL: http://issues.apache.org/jira/browse/HTTPCLIENT-615
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpConn
>            Reporter: Oleg Kalnichevski
>             Fix For: 4.0 Alpha 1
>
>         Attachments: 2k6-12-21-hostconfig-1.txt
>
>
> HostConfiguration class should be immutable. This should also allow methods of this class to be non-synchronized.
> Oleg

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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