[
https://issues.apache.org/jira/browse/HBASE-24640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17239026#comment-17239026
]
Duo Zhang commented on HBASE-24640:
-----------------------------------
My point is that this is a common thing in java world so if we do not have very
strong reason that this is evil(for example, it leaks guava dependency and also
makes users confusing if it is used in public API), then we'd better not
disable it just because of 'I do not think it is useful'.
For me, I think an annotation is better than javadoc as it can enforce the same
pattern and can easily be searched across the whole code base. For javadoc,
since not all the developers have the same English ability, we may use
different words and also easy to have typos so even if we are saying the same
thing, we could see completely different javadoc sentences...
Anyway, let me see if we could enforce a rule on disabling the usage of
VisibleForTesting in IA.Public or IA.LimitedPrivate classes, either through
maven enforer rule or yetus pre commit check. If this could be done then we
could talk about allowing VisibleForTesting again, otherwise let's just disable
it across the whole code base by banning the import of VisibleForTesting.
Thanks.
> Purge use of VisibleForTesting
> ------------------------------
>
> Key: HBASE-24640
> URL: https://issues.apache.org/jira/browse/HBASE-24640
> Project: HBase
> Issue Type: Task
> Components: community
> Affects Versions: 3.0.0-alpha-1, 2.4.0
> Reporter: Nick Dimiduk
> Assignee: Andrew Kyle Purtell
> Priority: Major
> Fix For: 3.0.0-alpha-1, 1.7.0, 2.4.0
>
>
> From the dev-list thread ["[DISCUSS] VisibleForTesting annotation as it
> pertains to our API compatibility
> guidelines"|https://lists.apache.org/thread.html/rc7c7c66f134fe135d0a4454a883215e26ff3d20e5a31ecd6a2d1db77%40%3Cdev.hbase.apache.org%3E],
> when used in classes annotated with interface audience other than
> IA.Private, the VisibleForTesting annotation is confusing and considered
> harmful. The consensus is that we do not want to use this annotation as part
> of the definition of our public APIs, and we need to remove the point of
> confusion.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)