[ https://issues.apache.org/jira/browse/ZOOKEEPER-2139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15244343#comment-15244343 ]
Rakesh R commented on ZOOKEEPER-2139: ------------------------------------- Sorry for pitch in late and adding some comments. Since I was involved at the beginning of this jira discussion I'd like to take a look at the final patch. Thank you [~arshad.mohammad] for the good work. I found some time in reviewing the patch, overall its pretty good. I've few comments, please take a look at it. # Typo: CLIENT_MAX_PACKET_LENTH_DEFAULT, please correct spelling to "LENGTH" # The default value in the following needs to be corrected, it should be {{ENABLE_CLIENT_SASL_DEFAULT}}, right?. Also, can we call {{ZKClientConfig.isSaslClientEnabled()}} in this method {{#isEnabled()}} to avoid code duplication? {code} public static boolean isEnabled() { return Boolean.valueOf(System.getProperty( ZKClientConfig.ENABLE_CLIENT_SASL_KEY, ZKClientConfig.ENABLE_CLIENT_SASL_KEY)); } {code} # I'd prefer to keep the default value in ZKClientConfig. Please move this default value to this property specific class. {code} ClientCnxnSocket.java + /** + * 4 MB + */ + private static int CLIENT_MAX_PACKET_LENTH_DEFAULT = 4096 * 1024; {code} # It would be good to specify the version which we are introducing ZKClientConfig and ZKConfig, @since 3.5.2 at the class level javadoc. Also, I think we need to add the version to {{config}} param in the constructor similar to the existing API doc style like, {{@param canBeReadOnly}} has version details {{(added in 3.4)}}. {code} * @param conf * (added in 3.5.2) passing this conf object gives each client the flexibility of * configuring properties differently compared to other instances {code} {code} + * @param clientConfig + * (added in 3.5.2) passing this conf object gives each client the flexibility of + * configuring properties differently compared to other instances {code} # Please remove the extra bracket from the following function. {code} ZKConfig.java public void addConfiguration(File configFile) throws ConfigException { { {code} # It is good practice to add timeout parameter in tests like {{@Test(timeout = 10000)}}, please add it. # In general, I could see there are many occurances of System.getProperty() in the code. I think we could unify all these calls by using ZKClientConfig#getProperty("") and ZKConfig#getProperty(""). Since the current patch is quite big, can raise separate improvement task and work on after this patch is committed. Example cases: {code} System.getProperty(ZKClientConfig.LOGIN_CONTEXT_NAME_KEY, "Client") System.getProperty(ZKConfig.SSL_AUTHPROVIDER, "x509") {code} > Support multiple ZooKeeper client, with different configurations, in a single > JVM > --------------------------------------------------------------------------------- > > Key: ZOOKEEPER-2139 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2139 > Project: ZooKeeper > Issue Type: Improvement > Components: java client > Affects Versions: 3.5.0 > Reporter: Surendra Singh Lilhore > Assignee: Arshad Mohammad > Priority: Blocker > Fix For: 3.5.2, 3.6.0 > > Attachments: ZOOKEEPER-2139-05.patch, ZOOKEEPER-2139-06.patch, > ZOOKEEPER-2139-07.patch, ZOOKEEPER-2139-08.patch, ZOOKEEPER-2139-09.patch, > ZOOKEEPER-2139-10.patch, ZOOKEEPER-2139-11.patch, ZOOKEEPER-2139.patch, > ZOOKEEPER-2139.patch, ZOOKEEPER-2139_1.patch, ZOOKEEPER-2139_2.patch > > > I have two ZK client in one JVM, one is secure client and second is normal > client (For non secure cluster). > "zookeeper.sasl.client" system property is "true" by default, because of this > my second client connection is failing. > We should pass all client configurations in client constructor like HDFS > client. > For example : > {code} > public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, > Configuration conf) throws IOException > { > ...... > ...... > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)