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

Reply via email to