We have a custom annotation in geode-common called @TestingOnly: geode-common/src/main/java/org/apache/geode/annotations/TestingOnly.java
This annotation was created while pairing with Michael Feathers and the intention was to annotate non-private constructors or methods that have a widened visibility scope to facilitate testing. Some developers, however, have interpreted it as meaning that the constructor or method cannot be used in the main src code and can only be used from test src code. I'd like to propose deleting @TestingOnly and change to using @VisibleForTesting which is defined in Guava (which is already a Geode dependency). The name of the Guava annotation is less ambiguous and it's already been adopted for use by additional projects including AssertJ which we use extensively. The javadocs on VisibleForTesting explains its usage very clearly: /** * Annotates a program element that exists, or is more widely visible than otherwise necessary, only * for use in test code. * * @author Johannes Henkel */ @GwtCompatible public @interface VisibleForTesting { }