Facility for
integration/system tests. This extends {@link HBaseTestingUtility}and adds-in the functionality needed by integration and system tests. This class understands distributed and pseudo-distributed/local cluster deployments, and abstracts those from the tests in this module.
IntegrationTestingUtility is constructed and used by the integration tests, but the tests themselves should not assume a particular deployment. They can rely on the methods in this class and HBaseCluster. Before the testing begins, the test should initialize the cluster by calling {@link #initializeCluster(int)}.
The cluster that is used defaults to a mini cluster, but it can be forced to use a distributed cluster by calling {@link #setUseDistributedCluster(Configuration)}. This method is invoked by test drivers (maven, IntegrationTestsDriver, etc) before initializing the cluster via {@link #initializeCluster(int)}. Individual tests should not directly call {@link #setUseDistributedCluster(Configuration)}.