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

Duo Zhang commented on HBASE-26158:
-----------------------------------

The project name tells everything, we are ‘HBase’, not ‘Zookeeper’, and on your 
problem, if it is something about how to config HBase to make use of an 
external zookeeper, then it certainly should be asked in HBase community. If 
you ask something about the TestingServer itself, then you should ask the 
curator community. IMO, if you ask something about MiniZookeeperCluster in the 
HBase community, you will likely get an answer about just use TestingServer in 
curator.

On why MiniZookeeperCluster is IA.Public, it is easy, HBTU is public in the 
past, so in general all the related things you can get from HBTU should be 
IA.Public, and finally we found that this is not the correct way, this is why 
we have the parent issue here.

And on the changing of the existing testing code, we can copy the code to 
HBase-testing-util module and keep it for the whole 3.x, so you have plenty of 
time to change you code. And finally, you can use IA.Private class in HBase, no 
one can stop you, just like what we have done in HBase to implement AsyncWAL, 
we used a lot of internal classes in Hadoop. Just take your own risk.

And I really do not see any problems that we have our own internal test way 
while providing another way for end users. We need to test internal of HBase, 
so we need to expose lots of internal stuff in our own testing framework, but I 
do not think we need to expose this to end users, and end users should not rely 
on this. Maybe in the future we may change some internal implementations and 
lots of UTs are not useful any more, but since the we have exposed the internal 
stuff in HBTU then we can not change our code? That’s really painful. But if we 
changed HBTU in this way, or just keep the interface the same but the behavior 
is completely changed, then what is the idfference between marking it IA.Public 
and IA.Private?

> MiniZooKeeperCluster should not be IA.Public
> --------------------------------------------
>
>                 Key: HBASE-26158
>                 URL: https://issues.apache.org/jira/browse/HBASE-26158
>             Project: HBase
>          Issue Type: Sub-task
>          Components: API, test
>            Reporter: Duo Zhang
>            Priority: Major
>
> End users do not need to test HBase when zookeeper is broken. And if users 
> want to start only a zookeeper cluster, they can just use curator-test, so I 
> do not think we should expose this class as IA.Public.



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

Reply via email to