[ 
https://issues.apache.org/jira/browse/SOLR-15342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17436529#comment-17436529
 ] 

Jan Høydahl commented on SOLR-15342:
------------------------------------

I think there are two ways we can do this. One is to move all code with 
compile-time ZK dependencies into separate classes, and make sure our 
CloudSolrClient classes only work on interfaces, such as the 
ClusterStateProvider. Our current code is not very clean, so there are direct 
use of e.g. ZkStateReader and zookeeper settings all over the place such as in 
BaseCloudSolrClient.

A slightly less clean way is to keep some compile-time deps but not announce 
them in the pom, so that users will get ClassNotFoundException unless a 
separate solrj-zookeeper jar is also added to classpath.

I realize that internal/inter-node use of SolrJ relies on ZK and that must 
remain somehow. I think perhaps it would be cleaner to have a CloudSolr2Client 
without any zk deps, and a separate CloudSolr2ClientZk that would be used 
internally or by expert external users.

It is unrealistic to prepare for this in 8.x, so I propose that we use the 9.x 
line to come up with a new architecture, where current 
org.apache.solr:solr-solrj artifact is kept and then we add new refactored 
clients and deprecate old ones.

> Separate out a SolrJ-Zookeeper module
> -------------------------------------
>
>                 Key: SOLR-15342
>                 URL: https://issues.apache.org/jira/browse/SOLR-15342
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrJ
>            Reporter: David Smiley
>            Priority: Major
>
> Let's create a new "SolrJ-Zookeeper" module by refactoring out the ZooKeeper 
> related code out of the existing SolrJ module.  This allows clients that 
> don't want to talk to ZooKeeper to use the SolrJ module without transitive 
> dependencies for ZooKeeper or Netty (Netty is used by ZK for SSL).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to