Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10462

Recategorize some of the client facing Public / Private interfaces

    XMLWordPrintableJSON

Details

    • Umbrella
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • 2.0.0-alpha-3, 2.0.0
    • Client
    • None

    Description

      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:

      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. 
      

      These are not marked:

      Registry, 
      ZooKeeperRegistry
      RpcRetryingCallerFactory
      ZooKeeperKeepAliveConnection
      AsyncProcess
      DelegatingRetryingCallable
      HConnectionKey
      MasterKeepAliveConnection
      MultiServerCallable
      

      We can think about making these public interface:

      ScanMetrics
      

      Add javadoc to:

      Query
      

      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

      Attachments

        1. hbase-10462_wip1.patch
          8 kB
          Enis Soztutar

        Issue Links

          There are no Sub-Tasks for this issue.

          Activity

            People

              enis Enis Soztutar
              enis Enis Soztutar
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: