[
https://issues.apache.org/jira/browse/HBASE-15978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15319021#comment-15319021
]
Josh Elser commented on HBASE-15978:
------------------------------------
I was talking to [~ndimiduk] in chat, and this problem reminded me of a maven
plugin that some folks ([~kturner] and [~ctubbsii]) wrote up to try to detect
these kinds of problems. Essentially, it verifies that a public API only refers
to other classes/interfaces that are also public API.
http://code.revelc.net/apilyzer-maven-plugin/
https://github.com/revelc/apilyzer-maven-plugin
We've had good success with it over in Accumulo-land (caught a few things we
leaked into the public API in the recent past). This might be nice to try to
wire up for 2.0.
> Netty API leaked into public API
> --------------------------------
>
> Key: HBASE-15978
> URL: https://issues.apache.org/jira/browse/HBASE-15978
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 2.0.0
> Reporter: Nick Dimiduk
> Priority: Blocker
>
> Noticed out public
> {{[client.Future|http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Future.html]}}
> interface extends Netty, which means our public API is bound to a specific
> Netty API and release. IIRC we were minimizing our public-facing surface area
> and asserting ownership over the whole of it so as to control our
> compatibility. Ie, we've done this with Protobuf as well. Not sure if this
> has made it back to other branches.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)