hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oleg Kalnichevski <ol...@apache.org>
Subject Re: HttpClient in Android
Date Thu, 18 Mar 2010 22:55:54 GMT
Bob Lee wrote:
> While I don't work for Google anymore, Android is an open source project, so
> I like to think I can still make contributions (at least after I launch my
> current product :-)).
> 
> On Thu, Mar 18, 2010 at 2:55 PM, Oleg Kalnichevski <olegk@apache.org> wrote:
> 
>> The current snapshot of HttpClient 4.x still maintains API compatibility
>> with the version shipping with Android.
>>
> 
> Last I checked, the mainline HttpClient made incompatible changes after
> Android shipped (protected member modifications count). This is why Android
> hasn't just dropped in an upgrade. Android could certainly benefit from bug
> fixes; I don't think stale connection checking works, for example.
> 
> 

Bob,

Every time a new release of HttpClient is cut it is checked for binary 
compatibility with the previous version using clirr. Maybe Google has a 
better tool, but clirr served us quite well in the past.

The strict interpretation of full binary compatibility with the version 
tagged as 4_0_API_FREEZE was compromised by making several protected 
variables final (listed in the 4.0 release notes). Those variables are 
used in impl classes and should have never been a part of the public API 
to start with. I was simply in a hurry and could not review every single 
area of the library before the API freeze.

I wrote to you _twice_ shortly before the final release to ask about 
your opinion whether this could be acceptable for Google or you would 
rather prefer to have those changes reverted. Since I got no response I 
had no other option but to assume that was not important. You went 
silent and no one else from Google approached us.

Even at this point it would still be very easy to make those variables 
non-final, if this is the only sticking point.

Again, I believe we stuck to our part of the deal.

Oleg

>> I understand that in the grand scheme of things we are very small. Now that
>> Android is a major success we are no longer needed.
> 
> 
> The HttpClient library is heavily used in Android apps, so it's very much
> needed. I use it in my app. Any bug fixes and performance improvements could
> have a big impact on overall performance, battery life and stability.
> 
> I can think of a few options going forward:
> 
>   1. Redo the incompatible changes in a way that's compatible with both
> Android's version and the mainline HttpClient. This may or may not be
> possible. I haven't dug too deeply.
> 
>   2. Maybe the changes are in an obscure part of the API that we're certain
> no one uses. We'd deliberately introduce a compatibility bug to fix a # of
> bugs that actually affect users. I recall that one of the incompatible
> changes fixed stale connection checking.
> 
>   3. Make the HttpClient library optional. Include it for older Android apps
> by default. Newer apps will need to import it using use-library. Newer apps
> will be able to bundle their own updated version of HttpClient (or some
> other lib). We should probably do this either way.
> 
> Bob
> 


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


Mime
View raw message