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

Ted Yu commented on HBASE-8273:
-------------------------------

I logged this JIRA with an attempt to solve the binary compatibility issue.

After further investigation, it turns out binary compatibility can be achieved 
between 0.92.3 and 0.94.7 in the following way:
1. introduce an interface, called X e.g., in 0.92(.3) with the setters for 
HColumnDescriptor
2. introduce an interface, called Y e.g., in 0.94(.7) with the setters for 
HColumnDescriptor where build pattern is supported
3. write Java assembly code in 0.94(.7) for HColumnDescriptor supporting both 
interfaces

Client code does not need reflection to use those methods.
                
> HColumnDescriptor setters should return void
> --------------------------------------------
>
>                 Key: HBASE-8273
>                 URL: https://issues.apache.org/jira/browse/HBASE-8273
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>
> See discussion on dev@ mailing list, entitled 'Does compatibility between 
> versions also mean binary compatibility?'
> Synopsis from that thread:
> HBASE-5357 "Use builder pattern in HColumnDescriptor" changed the
> method signatures by changing "void" to "HColumnDescriptor" so it' not
> the same methods anymore.
> if you invoke setters
> on HColumnDescriptor as you'll get:
> java.lang.NoSuchMethodError:
> org.apache.hadoop.hbase.HColumnDescriptor.setMaxVersions(I)V

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to