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

Chris Nauroth commented on ZOOKEEPER-2361:
------------------------------------------

I assume this pattern was inspired by the Guava 
[{{VisibleForTesting}}|http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/com/google/common/annotations/VisibleForTesting.html]
 annotation used in other projects like Hadoop.  I don't think there is 
anything wrong with the current pattern of using a {{// VisibleForTesting}} 
comment in the ZooKeeper code.  I don't have a better suggestion, so I'd be 
comfortable closing this as Won't Fix.  Maybe others have something else in 
mind?

Also, I recommend against introducing a Guava dependency, especially if it's 
just for this annotation.  Hadoop is currently stuck on an old version of Guava 
for backwards-compatibility reasons.  It has been a source of frustration for 
users that try to use a newer version of Guava in their Hadoop-based 
applications.  On the whole, the benefits of using the code in Guava have not 
out-weighed the dependency management problems.

> Revisit 'VisibleForTesting' phrase used to indicate a member or method 
> visible for testing
> ------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2361
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2361
>             Project: ZooKeeper
>          Issue Type: Improvement
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>            Priority: Minor
>
> ZooKeeper uses {{// VisibleForTesting}} comment to indicate a member or 
> method which is visible for unit testing. The idea of this jira is to discuss 
> better ways to convey the message more clear and implement the same. One idea 
> could use annotations, needs to introduce {{@VisibleForTesting}}
> For example, 
> [ContainerManager.java#L134|https://github.com/apache/zookeeper/blob/trunk/src/java/main/org/apache/zookeeper/server/ContainerManager.java#L134],
>  
> [PurgeTxnLog.java#L78|https://github.com/apache/zookeeper/blob/trunk/src/java/main/org/apache/zookeeper/server/PurgeTxnLog.java#L78],
>  
> [ZooKeeper.java#L1011|https://github.com/apache/zookeeper/blob/trunk/src/java/main/org/apache/zookeeper/ZooKeeper.java#L1011]
>  etc.
> {code}
> ZooKeeper.java
>     // VisibleForTesting
>     public Testable getTestable() {
>         return new ZooKeeperTestable(this, cnxn);
>     }
> {code}
> {code}
> PurgeTxnLog.java
>     // VisibleForTesting
>     static void retainNRecentSnapshots(FileTxnSnapLog txnLog, List<File> 
> snaps) {
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to