In Solr 10, SolrJ will have new maven coordinates and the need to explicitly 
pull in solrj-xx dependencies. So we coult also do a few key renames such as 
"Http2SolrClient" -> "HttpJettySolrClient", while we're busy breaking things :)

Jan

> 30. apr. 2024 kl. 13:21 skrev Jason Gerlowski <gerlowsk...@gmail.com>:
> 
> Thanks for summarizing this all David!
> 
> We have HttpSolrClientBase AND BaseHttpSolrClient?!
> 
> A bit of the messiness here seems like it will resolve itself
> "automatically" if we make good on removing the existing deprecations.
> (Though given how "entrenched" the Apache client is, that will require
> a good bit of work...).
> 
> I like the convention established by the JDK client, of naming our
> low-level SolrClient implementations based on the HttpClient vendor in
> use.  IMO doing otherwise can be confusing in a few different ways.
> It's not high on my list to act on it immediately, but if there's
> enough consensus on the idea of renaming (e.g.) Http2SolrClient, I
> could file a ticket to document that as an ideal step and maybe it'll
> hook someone eventually?
> 
> Best,
> 
> Jason
> 
> On Thu, Apr 25, 2024 at 11:34 PM Mark Miller <markrmil...@gmail.com> wrote:
>> 
>> It's too bad HttpSolrServer setup this client philosophy. It's momentum was 
>> directly opposite to what you want: a SolrClient that can optionally stream 
>> or load balance and a SolrCloudClient that wraps it.
>> 
>> [Mark Miller - Chat @ 
>> Spike](https://spikenow.com/r/a/?ref=spike-organic-signature&_ts=2kigx5)  
>> [2kigx5]
>> 
>> On April 25, 2024 at 20:07 GMT, David Smiley <dsmi...@apache.org> wrote:
>> 
>> Our SolrJ class hierarchy is looking rather confusing right now for
>> the HTTP ones especially. This message is mostly a big FYI, with some
>> reflections and a recommendation or two.
>> 
>> SolrClient
>> - BaseHttpSolrClient (NOT yet deprecated but should be?)
>> - - HttpSolrClient (based on Apache HttpClient; deprecated)
>> - - - DelegationTokenHttpSolrClient
>> - CloudSolrClient
>> - - CloudHttp2SolrClient
>> - - CloudLegacySolrClient (based on Apache HttpClient; deprecated)
>> - ConcurrentUpdateHttp2SolrClient
>> - - ...
>> - ConcurrentUpdateSolrClient (based on Apache HttpClient; deprecated)
>> - - ...
>> - HttpSolrClientBase (this is new)
>> - - Http2SolrClient
>> - - HttpJdkSolrClient (this is new; based on the JDK HttpClient)
>> - LBSolrClient
>> - - LBHttp2SolrClient
>> - - LBHttpSolrClient (based on Apache HttpClient; deprecated)
>> 
>> In retrospect, we can see that some past names weren't so great after
>> all. I think our clients should reflect the vendor/source of the
>> HttpClient. "HttpJdkSolrClient" is the newest client, and it reflects
>> the vendor (JDK provided HttpClient). Personally I don't care enough
>> to rename all the ones with "2" in there to have "Jetty" but that's
>> what they are -- if it has a "2", it's using Jetty (and it supports
>> 1.1; FYI JDK also supports both 1.1 and 2 as well). The clients for
>> Apache HttpClient are all deprecated so perhaps we continue to leave
>> them be, mostly. Removing them will take some time; they are
>> entrenched! BaseHttpSolrClient (the parent of HttpSolrClient) is at
>> the moment even more confusing because HttpSolrClientBase was just
>> added. BaseHttpSolrClient should be removed now; it only holds 2
>> static inner classes for RemoteSolrException and
>> RemoteExecutionException which should find a new home somewhere.
>> Since they are referenced so much, that will happen only in main.
>> HttpSolrClientBase is a tempting home but SolrClient would be fine, I
>> think.
>> 
>> Also, just because we have a nice new HttpJdkSolrClient, doesn't mean
>> we can yet advise anyone to safely remove Apache & Jetty dependencies
>> *yet*! We have no tests that this works, and a quick attempt I did
>> recently showed there are some obscure references still! Modularizing
>> SolrJ further (for Jetty & Apache) will help reveal where we have some
>> references, after which we can finally free users of needing those
>> dependencies.
>> 
>> ~ David Smiley
>> Apache Lucene/Solr Search Developer
>> http://www.linkedin.com/in/davidwsmiley
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
>> For additional commands, e-mail: dev-h...@solr.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
> For additional commands, e-mail: dev-h...@solr.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@solr.apache.org
For additional commands, e-mail: dev-h...@solr.apache.org

Reply via email to