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

stack commented on HBASE-9523:
------------------------------

Here are some comments on your list:

{code}
A few are private (because they are static inner classes) but should be made 
public
Base64.*
Byte.*
{code}

Agree

{code}
These should be private:
EnvironmentEdge. Maybe used by apps tests, but I default would be to hiding 
them.
simple helper utils (Classes, Methods, etc) – we don't want to support these 
for external apps.
@Public org.apache.hadoop.hbase // looks right
Cell
CellUtil
HBaseConfiguration 
HConstants // ??
NamespaceDescriptor
TableName
HBaseIOException
{code}

+1 on all of the above.  HConstants unfortunately must be public.  Hopefully it 
will go away soon.  Shrivel.

{code}
@Public org.apache.hadoop.hbase.io // make all of these private?
ByteBufferOutputStream
ImmutableBytesWritable
ImmutableBytesWritable.Comparator
TimeRange // javadoc says internal so make this private for sure.
{code}

Ok.  I thought TimeRange could come out in Client API?  Can you pass one of 
these to a Scan?

{code}
@Public org.apache.hbase.util // I think alot of these should be private, will 
mark with *
ByteRange * 
EnvironmentEdge *
PositionedByteRange * 
Classes *
Addressing * // why expose these helpers?
Base64 // this seems useful.
Base64.Base64InputStream // currently Private, Make public 
Base64.Base64OutputStream // currently Private, Make public 
ByteBufferArray *
ByteBufferUtils
ByteRangeUtils
Bytes
Bytes.ByteArrayComparator // currently Private, want to expose?
Bytes.RowEndKeyComparator // curerntly Private, want to expose?
Classes * 
ClassSize * 
DefaultEnvironmentEdge // keep public for client unit tests?
EnvironmentEdgeManager // keep public for client unit tests?
Hash // why? I guess hashes can stay.
IncrementaingEnvironmentEdge // currently Private, should be consistent with 
other EnvironmentEdges
JenkinsHash 
JVM *
MD5Hash
Methods * // no javadoc
MurmurHash 
OrderedBytes // looks like part of types 
Pair
PairOfSameType
SimpleByteRange
SimplePositionedByteRange
SoftValueSortedMap *
Strings * 
Threads * 
VersionInfo
Order
{code}

Yeah, above is a mix of private and publics.

{code}
@public org.apache.hadoop.hbase.util.test // TODO make all of these private.
LoadTestDataGenerator
LoadTestKVGenerator
RedundantKVGenerator
{code}

+1
                
> Audit of hbase-common @InterfaceAudience.Public apis.
> -----------------------------------------------------
>
>                 Key: HBASE-9523
>                 URL: https://issues.apache.org/jira/browse/HBASE-9523
>             Project: HBase
>          Issue Type: Sub-task
>          Components: documentation
>    Affects Versions: 0.95.2
>            Reporter: Jonathan Hsieh
>            Assignee: Jonathan Hsieh
>             Fix For: 0.98.0, 0.96.0
>
>
> Do an audit of all public classes to make suare we are only publicly exposing 
> what must be exposed.   
> This was done by comparing the Public only version of the javadoc generated 
> by HBASE-9517 to a local javadoc for the hbase-common module (cd 
> hbase-common; mvn javadoc:javadoc).  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to