On Thu, 2014-01-09 at 11:07 -0700, Shawn Heisey wrote:
> On 1/5/2014 9:03 AM, Oleg Kalnichevski wrote:
> > That is intended. HttpClient instances are expected to be immutable 
> > (not their dependencies though). This helps make them thread safe 
> > without incurring an overhead of synchronization. One should customize 
> > individual requests or execution contexts and never meddle with 
> > HttpClient instances. 
> 
> Thank you for your reply.
> 
> This is why I say it will be quite a paradigm shift for Solr.  Solr is 
> *almost* there in that usually those settings are only changed when the 
> server object is first created, but typically it's done by creating the 
> HttpClient object and then modifying its defaults.  Now the "create the 
> SolrServer and/or HttpClient with appropriate defaults" paradigm will 
> need to be 100% explicit.

It does not have to be. There is nothing that should prevent you from
using a factory pattern or a builder pattern in order to apply
reasonable defaults when creating HttpClient instances while giving the
users an option to override those properties they care about.

But the main point is that HttpClient instances should rarely need to
change, if at all. Most of configuration should take place at the
request (HttpRequest) or the session (HttpContext) level. I do not think
this is such a major paradigm shift.

> How much of a bad idea would it be to create a new HttpClient object 
> when a default parameter at the SolrServer level needs to change, 
> turning the old one into collectable garbage?  I don't like the idea, 
> just curious.
> 

HttpClient instances are very expensive to create. One ought to re-use
them as much as possible. Would not it be better to change HttpContext
instead?

Oleg

> > There is no migration guide but HttpClient programming principles are 
> > covered here 
> > http://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/index.html 
> 
> I think it's going to take me a while before I can fully wrap my head 
> around what to do here.  I look forward to figuring it all out and 
> learning a lot in the process.
> 
> Thanks,
> Shawn
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org

Reply via email to