[
https://issues.apache.org/jira/browse/HBASE-19746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16447136#comment-16447136
]
Lars Francke commented on HBASE-19746:
--------------------------------------
Thanks for the quick reply. Unfortunately I still don't get it.
{quote}Not really. The API which will be removed in 3.0 is Cell#getType. We
have deprecated the Cell#getTypeByte and suggested user to implement the
Cell#getType also in 2.0. Hence, we can remove Cell#getTypeByte in 3.0.{quote}
A few things:
In that case we'd need to deprecate `Cell#getType()` in 2.0 but that has not
happened. It's not marked as deprecated. If that's the intention I can provide
a patch to do so hoping [~stack] can still include it in 2.0.
So we remove both #getTypeByte and #getType in 3.0?
And I don't see a suggestion to implement getType anywhere tbh.
{quote}Yep. this issue is to keep the bc of Public class (Cell).{quote}
But we _won't_ keep it, no? With your plan we'll break BC with 3.0 anyway?
{quote}IIRC, our rules to Public class is we must deprecate the API in a whole
major release before we really remove them in next major release. Also, we
should introduce the replacement for deprecated APIs.{quote}
We discussed this at length last time I did a round of deprecation removals
(see HBASE-13462 and ) and we found out that the rules are ambiguous and that
everyone reads them differently. So we have both options.
{quote}I expect that hbase user should check the doc of deprecated API to find
out the replacement. The comment is shown below.{quote}
True! For getCellByte there's a deprecation tag but there's nothing in there
noting that the default implementation - or indeed the whole method - of
getType will go away.
Reading all of this I'm still at -0 on this. If I read you correctly the
_least_ we need to do is add a @deprecated tag to getType and an explanatory
note. But to be honest...why remove one method in favor of another just to
immediately deprecate that other method. I don't see how breaking BC in 3.0 for
a single method (removal of getTypeByte) is better than for two (getTypeByte +
getType), granted it's also not much worth but if we're going to take it away
anyway I'd rather not expose a new method that people then might rely on.
> Add default impl to Cell#getType
> --------------------------------
>
> Key: HBASE-19746
> URL: https://issues.apache.org/jira/browse/HBASE-19746
> Project: HBase
> Issue Type: Sub-task
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: HBASE-19746.v0.patch, HBASE-19746.v1.patch,
> HBASE-19746.v1.qa.patch
>
>
> Noticed this issue when migrating the app to branch-2.
> {{Cell}} is IA.Public so it should obey our compatibility rules. Not sure
> whether any related discussion had be in HBASE-19112. It worthwhile, however,
> to raise this issue again.
> FYI [~anoopsamjohn] [~ram_krish] [~stack]
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)