You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2015/04/08 21:03:12 UTC

[jira] [Commented] (HBASE-10462) Recategorize some of the client facing Public / Private interfaces

    [ 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)