You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jonathan Hsieh (JIRA)" <ji...@apache.org> on 2013/09/13 01:15:52 UTC
[jira] [Commented] (HBASE-9523) Audit of hbase-common
@InterfaceAudience.Public apis.
[ https://issues.apache.org/jira/browse/HBASE-9523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13765995#comment-13765995 ]
Jonathan Hsieh commented on HBASE-9523:
---------------------------------------
Here's a breakdown of all the classes/interfaces/enums/annotations currently public, some that should be public and my opinions on them.
tl;dr Roughly there are these groups which I should be public:
* Core public hbase entities (cell, tablename, namespaces, confguration, etc)
* byte manipulation, ordered byte array types helper methods.
A few are private (because they are static inner classes) but should be made public
* Base64.*
* Byte.*
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
@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.
@Public org.apache.hadoop.hbase.types // Looks right, one is sticks out.
DataType
FixedLengthWrapper
OrderedBlob
OrderedBlobVar // currently private, not sure why. [~ndimiduk]?
OrderedBytesBase
OrderedFloat32
OrderedFloat64
OrderedInt32
OrderedInt64
OrderedNumeric
OrderedString
RawBytes
RawBytesFixedLength
RawBytesTerminated
RawDouble
RawFloat
RawInteger
RawLong
RawString
RawStringFixedLength
RawStringTerminated
Struct
StructBuilder
StructIterator
TerminatedWrapper
Union2
Union3
Union4
@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
@public org.apache.hadoop.hbase.util.test // TODO make all of these private.
LoadTestDataGenerator
LoadTestKVGenerator
RedundantKVGenerator
> 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