Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-13126 Provide alternate mini cluster classes other than HBTU for downstream users to write unit tests
  3. HBASE-26081

Copy HBTU to hbase-testing-util, rename the HBTU related classes in hbase-server and mark them as IA.LimitedPrivate

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-alpha-2
    • API, test
    • None
    • Incompatible change, Reviewed
    • Hide
      Copy HBaseCommonTestingUtility, HBaseZKTestingUtility, HBaseTestingUtility, HBaseCluster, MiniHBaseCluster, StartMiniClusterOption to hbase-testing-util, and mark them as Deprecated. They will be removed in 4.0.0. End users should use TestingHBaseCluster for writing UTs in the future.

      And in hbase-server and related modules, these classes are renamed.
      HBaseCommonTestingUtility -> HBaseCommonTestingUtil
      HBaseZKTestingUtility -> HBaseZKTestingUtil
      HBaseTestingUtility -> HBaseTestingUtil
      HBaseCluster -> HBaseClusterInterface
      MiniHBaseCluster -> SingleProcessHBaseCluster
      StartMiniClusterOption -> StartTestingClusterOption
      And all these classes are marked as IA.LimitedPrivate("Phoenix"), and IS.Evolving. Except Phoenix, other end users should not use them any more.
      Show
      Copy HBaseCommonTestingUtility, HBaseZKTestingUtility, HBaseTestingUtility, HBaseCluster, MiniHBaseCluster, StartMiniClusterOption to hbase-testing-util, and mark them as Deprecated. They will be removed in 4.0.0. End users should use TestingHBaseCluster for writing UTs in the future. And in hbase-server and related modules, these classes are renamed. HBaseCommonTestingUtility -> HBaseCommonTestingUtil HBaseZKTestingUtility -> HBaseZKTestingUtil HBaseTestingUtility -> HBaseTestingUtil HBaseCluster -> HBaseClusterInterface MiniHBaseCluster -> SingleProcessHBaseCluster StartMiniClusterOption -> StartTestingClusterOption And all these classes are marked as IA.LimitedPrivate("Phoenix"), and IS.Evolving. Except Phoenix, other end users should not use them any more.

    Description

      See the discussions in the parent issue on why we want to do this.

      This is the final decision:

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

      Maybe a possible way is that, we mark HBTU as deprecated and introduce another class for end users to use. And on the next major release, we just introduce a another class in hbase-server for our internal usage, and copy the whole HBTU related classes to hbase-testing-util module, and keep them there for a whole major release, and then we remove them when the next major release is out. So end users will have plenty of time to change their code.

      Attachments

        Activity

          People

            zhangduo Duo Zhang
            zhangduo Duo Zhang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: