Sushanth Sowmyan created HCATALOG-589:
-----------------------------------------
Summary: Dependent library packaging
Key: HCATALOG-589
URL: https://issues.apache.org/jira/browse/HCATALOG-589
Project: HCatalog
Issue Type: Improvement
Reporter: Sushanth Sowmyan
During doing my e2e testing, I ran into issues because hcat depends on guava
11+, whereas only hive/lib provides only guava-r09. Since we depend on a newer
version of guava, we should include it in our distribution packaging.
Then comes the issue of where to put in such a dependency. The standard we used
to have before we cleaned up our dependencies was that hcat libraries
themselves were in share/hcatalog/ and dependencies were in share/hcatalog/lib.
I think that this is a reasonable practice to separate them out, since we want
people who want only hcat libraries to be able to get them without the deps,
and those that want the libraries and its deps, can get both directories.
So, ideally, I'd put guava.jar inside share/hcatalog/lib, whereas hcatalog.jar
remains in share/hcatalog/. This way, we don't "pollute" share/hcatalog/
Now, normally, this would be trivial, and I'd just add it, but the reason I
wanted to open a discussion on this is because we now have further components,
such as the hbase storage handler, which also has an additional dependency on
protobuf.jar. Now, if we were to follow the same logic as above, then the
directory, then, given that the storage handler itself resides in
share/hcatalog/storage-handlers/hbase/lib/, the equivalent place to put the
protobuf jar is share/hcatalog/storage-handlers/hbase/lib/lib , which feels
icky to me.
So.. ideas? preferences?
(In other news, I'll create another jira for this, but I believe we should
clean up our directory structure of our packaging further by 0.6 timeframe -
the whole share/hcatalog/ stuff is a relic from when we were trying to come up
with a unified packaging structure that would work if a person were to
minimally create a .rpm or .deb on it and dump these files wholesale into /usr,
or if they used a HCAT_PREFIX structure. Given that we now have bigtop
providing packaging on top of hcat, we can clean this up).
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira