hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kenny MacLeod (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HTTPCLIENT-805) Pass ClientConnectionManager to DefaultHttpClient constructor
Date Sun, 19 Oct 2008 10:24:44 GMT

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Kenny MacLeod updated HTTPCLIENT-805:
-------------------------------------

    Description: 
Copied from my mailing list post, Oleg suggested I post it to JIRA for 4.1 fix.

I'm trying to find the least verbose way of configuring a DefaultHttpClient with a ThreadSafeClientConnManager.

The example code given for this goes through a manual process of configuring HttpParams and
SchemeRegistry objects, which is more or less copied from the DefaultHttpClient.createHttpParams()
and createClientConnectionManager() methods.

It's a bit of a chicken and egg situation - DefaultHttpClient can create its own HttpParams
and SchemeRegistry, which are themselves fine, but only once its been constructed, and the
constructor requires the ThreadSafeClientConnManager, but that in turn requires the HttpParams
and SchemeRegistry objects.  The only way out is to manually construct the HttpParams and
SchemeRegistry, which is a waste.

It seems to me that DefaultHttpClient's constructor should take a ClientConnectionManagerFactory
instead of a ClientConnectionManager. That way, the createClientConnectionManager() method
already has the factory reference, and doesn't have to grub around in the HttpParams object
to find it.

The code would then become:

new DefaultHttpClient(new ThreadSafeClientConnManagerFactory(), null);

where ThreadSafeClientConnManagerFactory.newInstance() just constructs ThreadSafeClientConnManager.
 There's no manual construction of HttpParams and SchemeRegistry, you just leave it up to
DefaultHttpClient.


  was:
Copied from my mailing list post, Oleg suggested I post it to JIRA for 4.1 fix.

I'm trying to find the least verbose way of configuring a
DefaultHttpClient with a ThreadSafeClientConnManager.

The example code given for this goes through a manual process of
configuring HttpParams and SchemeRegistry objects, which is more or less
copied from the DefaultHttpClient.createHttpParams() and
createClientConnectionManager() methods.

It's a bit of a chicken and egg situation - DefaultHttpClient can create
its own HttpParams and SchemeRegistry, which are themselves fine, but
only once its been constructed, and the constructor requires the
ThreadSafeClientConnManager, but that in turn requires the HttpParams
and SchemeRegistry objects.  The only way out is to manually construct
the HttpParams and SchemeRegistry, which is a waste.

It seems to me that DefaultHttpClient's constructor should take a
ClientConnectionManagerFactory instead of a ClientConnectionManager.
That way, the createClientConnectionManager() method already has the
factory reference, and doesn't have to grub around in the HttpParams
object to find it.

The code would then become:

new DefaultHttpClient(new ThreadSafeClientConnManagerFactory(), null);

where ThreadSafeClientConnManagerFactory.newInstance() just constructs
ThreadSafeClientConnManager.  There's no manual construction of
HttpParams and SchemeRegistry, you just leave it up to DefaultHttpClient.



> Pass ClientConnectionManager to DefaultHttpClient constructor
> -------------------------------------------------------------
>
>                 Key: HTTPCLIENT-805
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-805
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpClient, HttpConn
>    Affects Versions: 4.0 Beta 1
>            Reporter: Kenny MacLeod
>
> Copied from my mailing list post, Oleg suggested I post it to JIRA for 4.1 fix.
> I'm trying to find the least verbose way of configuring a DefaultHttpClient with a ThreadSafeClientConnManager.
> The example code given for this goes through a manual process of configuring HttpParams
and SchemeRegistry objects, which is more or less copied from the DefaultHttpClient.createHttpParams()
and createClientConnectionManager() methods.
> It's a bit of a chicken and egg situation - DefaultHttpClient can create its own HttpParams
and SchemeRegistry, which are themselves fine, but only once its been constructed, and the
constructor requires the ThreadSafeClientConnManager, but that in turn requires the HttpParams
and SchemeRegistry objects.  The only way out is to manually construct the HttpParams and
SchemeRegistry, which is a waste.
> It seems to me that DefaultHttpClient's constructor should take a ClientConnectionManagerFactory
instead of a ClientConnectionManager. That way, the createClientConnectionManager() method
already has the factory reference, and doesn't have to grub around in the HttpParams object
to find it.
> The code would then become:
> new DefaultHttpClient(new ThreadSafeClientConnManagerFactory(), null);
> where ThreadSafeClientConnManagerFactory.newInstance() just constructs ThreadSafeClientConnManager.
 There's no manual construction of HttpParams and SchemeRegistry, you just leave it up to
DefaultHttpClient.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message