Details

Refactor of Coprocessor API for hbase2. Purged methods that exposed too much of our internals. Other hooks were recast so they no longer took or returned internal classes; instead we pass Interfaces or read-only versions of implementations.

Refactor of Coprocessor API for hbase2. Purged methods that exposed too much of our internals. Other hooks were recast so they no longer took or returned internal classes; instead we pass Interfaces or read-only versions of implementations.
Here is some overview doc on changes in hbase2 for Coprocessors including detail on why the change was made:
https://github.com/apache/hbase/blob/branch-2.0/dev-support/design-docs/Coprocessor_Design_Improvements-Use_composition_instead_of_inheritance-HBASE-17732.adoc
More general background on why CPs had to change: https://docs.google.com/document/d/10cabwp_aR3OmpHVoeh544YLC3KwqMD9KiTIrHZAmfec/edit#

Description

As discussed in HBASE-18038. In RegionServerServices, Region and StoreFile interfaces we expose too many unnecessary methods. We need to find a way to not expose these methods to CP.