[ https://issues.apache.org/jira/browse/HADOOP-6668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12864128#action_12864128 ]
Tom White commented on HADOOP-6668: ----------------------------------- {quote} >Limited private for use by which components or subprojects? Limited private to MR and HDFS. >> How would I write my own metrics context? Who is "I"? If MR or HDFS developer then he is part of the target audience. If "I" is an application developer then he runs a risk using a limited-private API - it may change in incompatible ways of the MR and HDFS projects are okay with it. {quote} Sorry, "I" refers to an application developer writing a new metrics context. There is a service provider interface in org.apache.hadoop.metrics.spi, which clearly needs to be available to such a developer. My question was really about what is the appropriate component for LimitedPrivate, since an application developer may not host it in MR or HDFS. The option you outline is probably the best - mark the SPI classes as LimitedPrivate (MR and HDFS), and then the developer would use the developer javadoc. The only thing that isn't quite right is that the application developer is using an interface that is private to MR and HDFS, but it would work. {quote} The metrics APIs are separate form the actual metrics. You can consider marking specific classes that implement metrics public or private - but if you mark them as public then you are asserting that the actual implementation classes for the specific metrics are public - ie the impl class API is public. If your intension is to make specific sets of metrics (say for NN) public then you have to document that in your documentation - the annotation mechanism cannot help here unless we extend it. {quote} I understand, but what we need to solve is the discoverability problem - if we mark all the metrics classes as LimitedPrivate (which is what I think you are suggesting), then how do users find the documentation to configure them? > Apply audience and stability annotations to classes in common > ------------------------------------------------------------- > > Key: HADOOP-6668 > URL: https://issues.apache.org/jira/browse/HADOOP-6668 > Project: Hadoop Common > Issue Type: Sub-task > Components: documentation > Reporter: Tom White > Assignee: Tom White > Priority: Blocker > Fix For: 0.21.0 > > Attachments: common.interface-tw-annotated.txt, HADOOP-6668.patch, > HADOOP-6668.patch, HADOOP-6668.patch, HADOOP-6668.patch, HADOOP-6668.patch, > HADOOP-6668.patch > > > Mark private implementation classes with the InterfaceAudience.Private or > InterfaceAudience.LimitedPrivate annotation to exclude them from user Javadoc > and JDiff. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.