hi Wei-Chiu, Can you elaborate on what failures you are facing related to relocated protobuf classes.. ?
IFAIK, if the issue with location of protobuf classes, still old jar protobuf-2.5.0.jar will be available in classpath. So downstream depending on 2.5.0 version of protobuf still be able to access them. -vinay On Wed, 29 Apr 2020, 11:17 am Wei-Chiu Chuang, <weic...@cloudera.com> wrote: > I'm sorry for coming to this late. I missed this message. It should have > been a DISCUSS thread rather than NOTICE. > > Looks like this is inevitable. But we should make the downstream > developers aware & make the update easier. As long as it is stated clearly > how to update the code to support Hadoop 3.3, I am okay with that. > > Here's what I suggest: > (1) label the jira incompatible (just updated the jira) and updated the > release note to tell app developer how to update. > (2) declare ProtobufHelper a public API HADOOP-17019 > <https://issues.apache.org/jira/browse/HADOOP-17019> > > Tez doesn't use the removed Token API, but there's code that breaks with > the relocated protobuf class. The ProtobufHelper API will make this > transition much easier. > > Other downstreamers that break with the relocated protobuf include: Ozone > and HBase. but neither of them use the removed Token API. > > > On Wed, Jan 8, 2020 at 4:40 AM Vinayakumar B <vinayakum...@apache.org> > wrote: > >> Hi All, >> >> This mail is to notify about the Removal of following public APIs from >> Hadoop Common. >> >> ClassName: org.apache.hadoop.security.token.Token >> APIs: >> public Token(TokenProto tokenPB); >> public TokenProto toTokenProto(); >> >> Reason: These APIs are having Generated protobuf classes in the >> signature. Right now due to protobuf upgrade in trunk (soon to be 3.3.0 >> release) these APIs are breaking the downstream builds, even though >> downstreams dont use these APIs (just Loading Token class). Downstreams >> are >> still referencing having older version (2.5.0) of protobuf, hence build is >> being broken. >> >> These APIs were added for the internal purpose(HADOOP-12563), to >> support serializing tokens using protobuf in UGI Credentials. >> Same purpose can be achieved using the Helper classes without introducing >> protobuf classes in API signatures. >> >> Token.java is marked as Evolving, so I believe APIs can be changed >> whenever >> absolute necessary. >> >> Jira https://issues.apache.org/jira/browse/HADOOP-16621 has been >> reported to solve downstream build failure. >> >> So since this API was added for internal purpose easy approach to solve >> this is to remove APIs and use helper classes. Otherwise, as mentioned in >> HADOOP-16621, workaround will add unnecessary codes to be maintained. >> >> If anyone using these APIs outside hadoop project accidentally, please >> reply to this mail immediately. >> >> If no objection by next week, will go ahead with removal of above said >> APIs >> in HADOOP-16621. >> >> -Vinay >> >