Description
Phoenix seems to have long had its own version of hbase-default.xml as a test resource in phoenix-core with a single setting to override hbase.defaults.for.version.skip to true. Sometime around Phoenix 4.3, phoenix-core seems to have been split into a main jar and a test jar, and the hbase-default.xml went into the test jar.
The odd result of this is that in client apps that include the test jar, the classloader in HBaseConfiguration.create() now sees Phoenix's hbase-default.xml, rather than HBase's, and creates a Configuration object without HBase's defaults. One major consequence of this is that the HBaseTestingUtility can't start up, because it relies on those HBase defaults being set. This is a huge problem in a client app that includes the phoenix-core test jar in order to make use of the PhoenixTestDriver and BaseTest classes; the upgrade to 4.3 breaks all tests using the HBaseTestingUtility.