hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10462) Recategorize some of the client facing Public / Private interfaces
Date Wed, 08 Apr 2015 19:03:12 GMT

    [ https://issues.apache.org/jira/browse/HBASE-10462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14485813#comment-14485813
] 

Enis Soztutar commented on HBASE-10462:
---------------------------------------

Nearly all of the changes proposed have been done. Exceptions seem: 
 - Add javadoc to Query. 
 - make TableSnapshotScanner Private, and find a way to construct it. Maybe we can do a {{SnapshotConnection}}
which returns a ConnectionTable, which returns the scanner. Since connection is the factory
to everything, I think this approach is the most clean. 
 - Golden file for testing. We now have the compat checker, although it does not support per-method
annotations and it is usually a release-by-release comparison rather than a per-patch comparison
(as would have been in a unit test context). 

In any case, I think it is not a blocker for 1.1 anymore I think. 

> 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, 1.1.0
>
>         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)

Mime
View raw message