[
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)