Description
As anshumg pointed out in SOLR-10456, the Builder code for each SolrClient has a lot of duplication in it.
For example, each SolrClient allows configuration of the connection timeout: all 4 builders have a field to store this value, all 4 builders have a withConnectionTimeout method to set this value, and all 4 builders have very similar Javadocs documenting what this value can be used for.
The same can be said for 5 or 6 other properties common to most/all SolrClient's.
This duplication could be removed by creating an abstract SolrClientBuilder class, which each of the specific Builders extend.