Description
I understand the convenience of using "@Deprecated" to discourage users from using some bit of code, but I think this is confusing to users, because it doesn't actually mean the functionality is deprecated. This sets a bad precedent, because users may start getting the impression that when we say something is deprecated, we don't really mean it, that we're just keeping something from them.
Further, using this tag liberally for other purposes, requires us to pollute the code with suppression of warnings, which may hide other potential issues. This wouldn't be an issue if the code were actually deprecated, because we should no longer be using the code ourselves.
These extra tags got checked in for ACCUMULO-259, and I think they should be cleaned up.
Some options are:
- Create another annotation for annotating the public API
- Create an annotation for annotating "Not For Client Use" when it is inconvenient to remove a method from the API.
- Use an interface so the method isn't exposed in our public API