Reviving this thread to link to what's probably the final installment of the saga:
SOLR-17968 HttpSolrClient as new base class https://github.com/apache/solr/pull/3829 The TL;DR approximation is: "HttpSolrClientBase becomes HttpSolrClient" In November I gave it a shot then abandoned it due to disinterest, then a few weeks ago an epiphany on the usefulness of it, and got it going again with those later ideas. My last comment is a summary: > I did a series of things, as seen in a series of commits: > > 1. HttpApacheSolrClient no longer extends HttpSolrClient in this PR. Unfortunate but it'll interfere... > 2. Rename HttpSolrClientBase to HttpSolrClient. (replacing my earlier simple attempt at an abstract HttpSolrClient in this PR) > 3. Rename HttpSolrClientBuilderBase.java to HttpSolrClient.BuilderBase (inner class, now) > 4. Renamed HttpSolrClient.builder() internal instance method to `toBuilder(url)` to not conflict with... > 5. Added HttpSolrClient.builder(url) static method, mostly using code moved from CloudSolrClient, which now uses this. It's really in great shape to be merged IMO, but a change to our important SolrJ abstractions deserves peer review / feedback. Perhaps it might even make 10.0, which would make for a better coherent message to communicate in 10.0 release notes. It's just refactoring/moving/renaming, for the most part. >
