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