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