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

Ron Sigal rsigal at redhat.com
Mon May 16 21:26:36 EDT 2016


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 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)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/resteasy-dev/attachments/20160516/eaa94823/attachment.html 


More information about the resteasy-dev mailing list