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

Tsz Wo Nicholas Sze commented on HADOOP-10506:
----------------------------------------------

> ...  But in many cases those components are separate from core hadoop.  This 
> means any changes to them will break backwards compatibility with those, ...

This part I don't agree.  When changing a LimitedPrivate API, we should aware 
that the depended components, which may sit outside core, should still work 
with the change.  In some cases, we may also make change to the depended 
components.  LimitedPrivate does not imply backwards compatibility since the 
LimitedPrivate APIs could be Unstable.  It just means that the depended 
components are using the API.

> Note that many of the annotation are also not marked properly, or have fallen 
> out of date. I see Public Interfaces that use LimitedPrivate classes in the 
> api. (TokenCache using Credentials is an example).

Okay, there is an ambiguity -- When a  Public API method using LimitedPrivate 
classes, does it mean that the Public API method automatically become a 
LimitedPrivate method (this is similar to the Java private methods in a Public 
classes; they are not Public APIs)?  Or Public APIs are not allowed using 
LimitedPrivate.  (Then, it is a bug as you mentioned but it does not mean 
LimitedPrivate annotation not useful.)

Anyway, I do agree that we do not define LimitedPrivate very carefully so that 
there are confusions in these special cases.

> LimitedPrivate annotation not useful
> ------------------------------------
>
>                 Key: HADOOP-10506
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10506
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 2.4.0
>            Reporter: Thomas Graves
>
> The LimitedPrivate annotation isn't useful.  The intention seems to have been 
> those interfaces were only intended to be used by these components.  But in 
> many cases those components are separate from core hadoop.  This means any 
> changes to them will break backwards compatibility with those, which breaks 
> the new compatibility rules in Hadoop.  
> Note that many of the annotation are also not marked properly, or have fallen 
> out of date.  I see Public Interfaces that use LimitedPrivate classes in the 
> api.  (TokenCache using Credentials is an example). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to