[ 
https://issues.apache.org/jira/browse/HBASE-16756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Stack resolved HBASE-16756.
-----------------------------------
    Resolution: Won't Fix

Not doing this.

> 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)

Reply via email to