[ https://issues.apache.org/jira/browse/SOLR-12309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16466035#comment-16466035 ]
Shawn Heisey commented on SOLR-12309: ------------------------------------- I can understand the desire to not have lots of constructors. We're using the fluent paradigm, so the most straighforward option is only one constructor -- the one with no arguments. Complexity can then happen in the fluent methods, making confusion a lot less likely. We could have signatures like these, where using one of them is required before build() will work: * withZkHosts(List<String> zkHosts) * withZkHosts(List<String> zkHosts, String chroot) * withZkConnectString(String connectString) * withUrls(List<String> urls) > CloudSolrClient.Builder constructors are not well documented > ------------------------------------------------------------ > > Key: SOLR-12309 > URL: https://issues.apache.org/jira/browse/SOLR-12309 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: clients - java > Affects Versions: 7.3 > Reporter: Shawn Heisey > Priority: Minor > > I was having a lot of trouble figuring out how to create a CloudSolrClient > object without using deprecated code. > The no-arg constructor on the Builder object is deprecated, and the two > remaining methods have similar signatures to each other. It is not at all > obvious how to successfully call the one that uses ZooKeeper to connect. The > javadoc is silent on the issue. I did finally figure it out with a lot of > googling, and I would like to save others the hassle. > I believe that this is what the javadoc for the third ctor should say: > ---- > Provide a series of ZooKeeper hosts which will be used when configuring > CloudSolrClient instances. Optionally, include a chroot to be used when > accessing the ZooKeeper database. > Here are a couple of examples. The first one has no chroot, the second one > does: > new CloudSolrClient.Builder(zkHosts, Optional.empty()) > new CloudSolrClient.Builder(zkHosts, Optional.of("/solr")) > ---- > The javadoc for the URL-based method should probably say something to > indicate that it is easy to confuse with the ZK-based method. > I have not yet looked at the current reference guide to see if that has any > clarification. > Is it a good idea to completely eliminate the ability to create a cloud > client using a single string that matches the zkHost value used when starting > Solr in cloud mode? -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org