[
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