[ https://issues.apache.org/jira/browse/HBASE-17652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Appy updated HBASE-17652: ------------------------- Component/s: Coprocessors > Use 'default' keyword in Coprocessor Observer interfaces to get rid of > 'Base...Observer' implementations. > --------------------------------------------------------------------------------------------------------- > > Key: HBASE-17652 > URL: https://issues.apache.org/jira/browse/HBASE-17652 > Project: HBase > Issue Type: Improvement > Components: Coprocessors > Reporter: Appy > Assignee: Appy > Labels: coprocessors, incompatible > Attachments: HBASE-17652.master.001.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.4.14#64029)