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