[ https://issues.apache.org/jira/browse/HBASE-17312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Appy updated HBASE-17312: ------------------------- Resolution: Fixed Status: Resolved (was: Patch Available) > [JDK8] Use default method for Observer Coprocessors > --------------------------------------------------- > > Key: HBASE-17312 > URL: https://issues.apache.org/jira/browse/HBASE-17312 > Project: HBase > Issue Type: Sub-task > Components: Coprocessors > Affects Versions: 2.0.0 > Reporter: Guanghao Zhang > Assignee: Appy > Labels: incompatible > Fix For: 2.0.0 > > Attachments: HBASE-17312.master.001.patch, > HBASE-17312.master.001.patch, HBASE-17312.master.002.patch, > HBASE-17312.master.003.patch, HBASE-17312.master.004.patch, > HBASE-17312.master.005.patch, HBASE-17312.master.006.patch > > > In cases where one might need to use multiple observers, say region, master > and regionserver; and the fact that only one class can be extended, it gives > rise to following pattern: > {noformat} > public class BaseMasterAndRegionObserver > extends BaseRegionObserver > implements MasterObserver > class AccessController > extends BaseMasterAndRegionObserver > implements RegionServerObserver > {noformat} > were BaseMasterAndRegionObserver is full copy of BaseMasterObserver. > There is an example of simple case too where the current design fails. > Say only one observer is needed by the coprocessor, but the design doesn't > permit extending even that single observer (see RSGroupAdminEndpoint), that > leads to full copy of Base...Observer class into coprocessor class leading to > 1000s of lines of code and this ugly mix of 5 main functions with 100 useless > functions. -- This message was sent by Atlassian JIRA (v6.3.15#6346)