True. But we can clearly annotate what is public and what is not.
In HRegion we'd have to do it per method. It's probably easier to extract the public interface out into a Interface. (similar to Store and HStore)
HBASE-4207 solves a slightly different problem. Here I want to have access to some HBase internals for performance, but I want to know what is public and stable and what I should not touch (thinking about things like Phoenix).

 From: Andrew Purtell <[EMAIL PROTECTED]>
Sent: Monday, February 10, 2014 4:46 PM
Subject: Re: DISCUSSION: 1.0.0

On Mon, Feb 10, 2014 at 4:42 PM, lars hofhansl <[EMAIL PROTECTED]> wrote:
We started this with Environment and the HTable wrapper as an example of
how to wrap an interface for CPs. At the end of the day we can't stop a
coprocessor from accessing internal objects and calling their methods
directly until HBASE-4047. (Maybe that makes the 1.0 list?)

Related, paring down the coprocessor interfaces to only intercept RPC based
actions and move everything else to plugins.

Best regards,

   - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB