[
https://issues.apache.org/jira/browse/HBASE-16756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17397789#comment-17397789
]
Michael Stack commented on HBASE-16756:
---------------------------------------
{quote}I'm not sure what would constitute "Fixed" on this issue, it looks to
mostly document some decisions that have already been made.
{quote}
I think this issue had grand notions of a curated list of pbs that could
somehow be consumed by downstreamers freely marked w/ interfaceaudience.public.
It hasn't happened. Not sure it even possible given pb2 vs pb3 and that our
protos were a glob probably hard to disentangle into public/private. Let me
resolve as "won't implement".
Since , hbase-protocol is removed for hbase3 (see nice release note on
HBASE-23797 ). Let me do your suggestion of underlining pbs as limitedprivate
in doc over in another issue [~bbeaudreault]
> InterfaceAudience annotate our protobuf; distinguish internal; publish public
> -----------------------------------------------------------------------------
>
> Key: HBASE-16756
> URL: https://issues.apache.org/jira/browse/HBASE-16756
> Project: HBase
> Issue Type: Task
> Components: Protobufs
> Reporter: Michael Stack
> Priority: Major
>
> This is a follow-on from the work done over in HBASE-15638 Shade protobuf.
> Currently protobufs are not annotated as our java classes are even though
> they are being used by downstream Coprocessor Endpoints; i.e. if a CPEP wants
> to update a Cell in HBase or refer to a server in the cluster, 9 times out of
> 10 they will depend on the HBase Cell.proto and its generated classes or the
> ServerName definition in HBase.proto file.
> This makes it so we cannot make breaking changes to the Cell type or relocate
> the ServerName definition to another file if we want CPEPs to keep working.
> The issue gets compounded by HBASE-15638 "Shade protobuf" where protos used
> internally are relocated, and given another package name altogether.
> Currently we leave behind the old protos (sort-of duplicated) so CPEPs keep
> working but going forward, IF WE CONTINUE DOWN THIS PATH OF SHADING PROTOS
> (we may revisit if hadoop ends up isolating its classpath), then we need to
> 'publish' protos that we will honor as we would classes annotate with
> @InterfaceAudience.Public as part of our public API going forward.
> What is involved is a review of the current protos under hbase-protocol. Sort
> out what is to be made public. We will likely have to break up current proto
> files into smaller collections since they currently contain mixes of public
> and private types. Deprecate the fat Admin and Client protos. This will
> allow us to better narrow the set of what we make public. These new files
> could live in the hbase-protocol module suitably annotated or they could be
> done up in a new module altogether. TODO.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)