[
https://issues.apache.org/jira/browse/HBASE-13645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14536309#comment-14536309
]
Lars Francke commented on HBASE-13645:
--------------------------------------
And yet another question: {{MasterCoprocessorHost}} calls the "old" methods and
we need to keep it that way for 2.0.0 for people directly implementing
{{MasterObserver}}. But now they'll get a deprecation warning and are asked to
move to the _column family_ versions.
How do I actually call that though? In {{MasterCoprocessorHost}} in addition to
the old methods? That means people must be careful not to implement both - old
and new - versions. Am I missing something obvious? I don't see any other way.
I can not only call the new version because then people directly implementing
{{MasterObserver}} won't get a call back and I can't only call the old version
because then people implementing only the new one won't get a call back.
I guess I'll just have to add good documentation and expect people to read it :)
> Rename *column methods in MasterObserver to *columnFamily
> ---------------------------------------------------------
>
> Key: HBASE-13645
> URL: https://issues.apache.org/jira/browse/HBASE-13645
> Project: HBase
> Issue Type: Improvement
> Reporter: Lars Francke
> Assignee: Lars Francke
> Priority: Minor
>
> This being an interface makes it a bit harder on implementors. It'd be easier
> with Java8 and default implementations.
> We could either
> # add new *columnFamily methods and deprecate the old ones or
> # rename the existing ones without doing a deprecation first.
> Implementors would need to change their code in each of those cases. But
> because we have the {{BaseMasterObserver}} and
> {{BaseMasterAndRegionObserver}} it'd make things easier for people using
> those classes if we go with option 1. So that's my preference.
> The plan would be to add these methods in 2.0.0 and remove the old ones in
> 3.0.0.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)