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

Reply via email to