[resteasy-dev] Proposed changes to org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine

Weinan Li weli at redhat.com
Mon May 16 22:26:51 EDT 2016


--
Weinan Li / JBoss

> On May 17, 2016, at 9:26 AM, Ron Sigal <rsigal at redhat.com> wrote:
> 
> Hi Rebecca,
> 
> Following up on our discussion during today's meeting, changing that constructor would introduce a new behavior that may break someone's code. That was the point of the discussion in RESTEASY-975. So we have to come to some decision about how to manage changes like this. Should we have, as you suggested, a 3.0.x branch
I will release 3.0.17.Final today and create the 3.0.x branch.

> that maintains the current behavior, so that a change like this can be introduced into master (or whatever ends up serving as master for 3.1.x)? My concern is that fixes for older bugs [not that we will ever introduce any     new bugs ;-) ] will have to be applied to two branches. More work, but now we have more people. I don't know. Is that considered a best practice? Just wondering.
> 
> By the way, other issues that may (or may not) be related:
> 
>  * https://issues.jboss.org/browse/RESTEASY-906
>  * https://issues.jboss.org/browse/RESTEASY-1089
>  * https://issues.jboss.org/browse/RESTEASY-1192
>  
> -Ron
> 
> On 05/15/2016 11:36 PM, Weinan Li wrote:
>> Hi Rebecca,
>> 
>> Here are two relative issues maybe you'll be interested in:
>> 
>> 
>> https://issues.jboss.org/browse/RESTEASY-975
>> https://issues.jboss.org/browse/RESTEASY-1023
>> 
>> 
>> - Weinan Li
>> 
>> 
>>> On May 16, 2016, at 4:01 AM, Rebecca Searls <rsearls at redhat.com>
>>>  wrote:
>>> 
>>> 
>>> I'm cleaning up the deprecated apache classes in resteasy-client.
>>> I am currently working on org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.
>>> One of four ApacheHttpClient4Engine constructor methods is using the deprecated class 
>>> org.apache.http.impl.client.DefaultHttpClient.
>>> 
>>>   public ApacheHttpClient4Engine()
>>>   {
>>>      this.httpClient = new DefaultHttpClient();
>>>      this.createdHttpClient = true;
>>>   }
>>> 
>>> Apache's (version 4.3) requirement is to use a HttpClientBuilder to generated a new HttpClient
>>> object.  I can generated the HttpClient using Builder, HOWEVER doing so will mean a HttpHost 
>>> can never be assigned to the this.httpClient object. 
>>> 
>>> I propose doing the following to address this.
>>> 
>>>    1) Implement the no-arg constructor using the new Builder procedure.
>>>       Adding Javadoc comments of the restriction to this constructor. 
>>>    2) Create a new constructor method that requires the input argument of HttpHost
>>>        and generates the HttpClient using the Builder procedure.
>>> 
>>> 
>>> 
>>> ApacheHttpClient4Engine methods getDefaultProxy setDefaultProxy are obsolete.
>>> A HttpPort object can not longer be set or retrieved from HttpClient using 
>>> org.apache.http.params.HttpParams. 
>>> 
>>> I don't find any Resteasy code calling getDefaultProxy.  There is only 1 call
>>> to setDefaultProxy which is easily addressed.
>>> Since both methods are public, I propose the following changes.
>>> 
>>> 1) Tag both methods deprecated.
>>> 2) getDefaultProxy() will always return NULL;
>>> 3) setDefaultProxy() will do nothing.
>>> 4) Add Javadoc to both methods.
>>> 
>>> Comments and suggestions on these proposals would be appreciated.
>>> _______________________________________________
>>> resteasy-dev mailing list
>>> 
>>> resteasy-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
>> 
>> _______________________________________________
>> resteasy-dev mailing list
>> 
>> resteasy-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/resteasy-dev
> 
> -- 
> My company's smarter than your company (unless you work for Red Hat)
> 
> _______________________________________________
> resteasy-dev mailing list
> resteasy-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/resteasy-dev




More information about the resteasy-dev mailing list