[ 
https://issues.apache.org/jira/browse/PHOENIX-2025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14571631#comment-14571631
 ] 

Jesse Yates commented on PHOENIX-2025:
--------------------------------------

Kind of a major issue for anyone running unit tests using the phoenix test jars 
(so people can leverage the nice setup/teardown utils in phoenix test) - 
surprised no one else has seen this yet.

Maybe we can split out the test utils (e.g. BaseTest and its brethren) into a 
separate module - phoenix-test-utils - and then just have the phoenix-core 
tests depend on that module and set its own hbase-default.xml (since 
hbase-site.xml doesn't work). Downstream projects would just import 
phoenix-test-utils jar, not phoenix-core:tests.

Or maybe it will just take some pom fiddling to not include the 
hbase-default.xml when we build the tests jar...not sure what that would take.

> Phoenix-core's hbase-default.xml prevents HBaseTestingUtility from starting 
> up in client apps
> ---------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2025
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2025
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.3.0
>            Reporter: Geoffrey Jacoby
>
> 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. 
> I've verified that phoenix-core's own tests don't pass if its internal 
> hbase-default.xml is missing (ZK has problems starting up), and that renaming 
> it to hbase-site.xml doesn't seem to fix the problem either. I looked around 
> for a central point in code to manually set the 
> hbase.defaults.for.version.skip flag, but couldn't find one; BaseTest didn't 
> seem to cover all the needed test cases. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to