[ 
https://issues.apache.org/jira/browse/HBASE-19746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16447172#comment-16447172
 ] 

Chia-Ping Tsai commented on HBASE-19746:
----------------------------------------

{quote}In 3.0 we need to remove the default implementation, right? Because we 
can't get to getTypeByte anymore which we need for the implementation.
{quote}
Yep.
{quote}So we'll break BC in 3.0 for two different reasons.
{quote}
You are right.
{quote}I still don't like it but that is also not documented anywhere. Either 
we undeprecate getTypeByte or we need to mark getType as deprecated somehow 
because it will effectively change in 3.0.
{quote}
Agreed. Perhaps we should file a Jira to doc how to update from 1.x to 2.0? 
IIRC, there are some issues but I'm not sure whether the Cell changes are 
included.
{quote}You're saying that you suggested the user to implement getType but 
that's not the case as far as I can tell. There's no such suggestion. And 
unlike a "@deprecation" tag we cannot really enforce such a thing at compile 
time.
{quote}
You are right again. Are there any better way to reduce the pain of removing 
methods from Public class?
{quote}What are we gaining by including the default implementation?
{quote}
API compatibility? IIRC, recompiling should work when updating to next major 
release.
{quote}The alternative is to implement it in all our implementing classes in 
2.0 (which we'll otherwise have to do in 3.0), right?
{quote}
Yep. But it will introduce many duplicate code.
{quote}The BC issue doesn't really matter as we'll have to do it anyway, 
whether we do it in 2.0 or 3.0 doesn't really make a difference, no?
{quote}
Ya... the cell impl user must update their code for either 2.0 or 3.0 since we 
will do remove a method from Cell in 3.0. The API compatibility will break in 
3.0 but it is valid since we have deprecated the getTypeByte...ya, it is a 
unfriendly way...

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

Reply via email to