[
https://issues.apache.org/jira/browse/HBASE-10462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14226750#comment-14226750
]
Enis Soztutar commented on HBASE-10462:
---------------------------------------
The tool in the patch has already been committed in the subtask HBASE-10671.
The remaining things to do here are
- subtask for adding a golden file for testing
- going over our "public" client API and make sure that nothing Private is
Public now. For example, ClientScanner, etc should be private. The client
should never see or construct those objects.
- The unit test and the golden file in the subtasks does not cover our
mapreduce APIs (it only covers what is there in the hbase-client module and
it's dependencies. It does not touch our APIs in the hbase-server module.
> Recategorize some of the client facing Public / Private interfaces
> ------------------------------------------------------------------
>
> Key: HBASE-10462
> URL: https://issues.apache.org/jira/browse/HBASE-10462
> Project: HBase
> Issue Type: Bug
> Components: Client
> Reporter: Enis Soztutar
> Assignee: Enis Soztutar
> Priority: Blocker
> Fix For: 2.0.0, 0.99.2
>
> Attachments: hbase-10462_wip1.patch
>
>
> We should go over the list of InterfaceAudience.Public interfaces one more to
> remove those that are NOT indeed public interfaces.
> From current trunk, we should change these from public to private:
> {code}
> ReversedScannerCallable
> ReversedClientScanner
> ClientScanner (note that ResultScanner is public interface, while
> ClientScanner should not be)
> ClientSmallScanner
> TableSnapshotScanner -> We need a way of constructing this since it cannot be
> constructed from HConnection / HTable. Maybe a basic factory.
> {code}
> These are not marked:
> {code}
> Registry,
> ZooKeeperRegistry
> RpcRetryingCallerFactory
> ZooKeeperKeepAliveConnection
> AsyncProcess
> DelegatingRetryingCallable
> HConnectionKey
> MasterKeepAliveConnection
> MultiServerCallable
> {code}
> We can think about making these public interface:
> {code}
> ScanMetrics
> {code}
> Add javadoc to:
> {code}
> Query
> {code}
> We can add a test to find out all classes in client package to check for
> interface mark.
> We can extend this to brainstorm on the preferred API options. We probably
> want the clients to use HTableInterface, instead of HTable everywhere.
> HConnectionManager comes with bazillion methods which are not intended for
> public use, etc.
> Raising this as blocker to 1.0
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)