-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6012/
-----------------------------------------------------------
(Updated July 29, 2012, 8 p.m.)
Review request for hcatalog.
Changes
-------
Updated patch against trunk. Since there have been some changes the patch no
longer applied cleanly and the merge was pretty crazy. I believe clover &
forrest still work correctly, as does the build+tests. I have been testing it
with:
ant -Dclover.home=/usr/local/clover-ant-2.6.3
-Dforrest.home=/Users/travis/apache-forrest-0.9 clean test-with-clover forrest
Note that the clover usage is much nicer now.
I did disable two tests that seemed flakey. I did this because the merge was
such a hassle I really want to avoid doing that a third time if that shims
stuff gets committed. I'd strongly prefer to get the build changes in, and fix
the tests afterwards.
TestPermsGrp
TestEximSemanticAnalysis
There are also some additional improvements from the last patch that moves the
build files towards more reuse. In future changes we'll get all the way there.
Description
-------
Update HCatalog build to use transitive dependencies instead of explicitly
listing them. The primary goal of this change is publishing meaningful POM
files so we can get HCatalog into the central maven repo.
ant/dependencies.xml
This is a new file that has much of the Ivy stuff in it. Notice we now do one
resolution per subproject, fetching into per-configuration directories. This
greatly simplifies things, and ensure we only need to resolve once per
subproject.
ant/deploy.xml
This has much of the maven-ant-tasks stuff, which is not fully used. I left
this in here because we'll need to sign packages when publishing them. The only
thing truly needed is mvn-init - the other stuff is kept for convenience in a
subsequent change.
build-common-new.xml
Main change here is using the shared ivy config stuff.
build-common.xml
Mainly set some properties and remove some cruft. I don't really like how
properties are duplicated among several xml files, and would like to
consolidate these into one file or perhaps a build.properties file. I decided
against that at this time because the patch is already getting pretty large and
want to stay focused on getting the artifacts into maven.
build.xml
Lots of ivy stuff is removed, using dependencies.xml instead. We also publish
hcatalog-core.jar into the local maven repo at build time, so we can depend on
it from other subprojects. You'll notice later how simple the subproject ivy
files become because of this.
hcatalog-pig-adapter/build.xml
Mainly update classpaths.
hcatalog-pig-adapter/ivy.xml
Our dependencies are greatly simplified because now we get most things from
hcatalog-core.jar, instead of listing them explicitly.
ivy.xml
Lots of simplification here :) Now we primarily get dependencies transitively,
with lots of stuff coming from Hadoop/Hive. A consequence of this is some jar
versions have changed. For example, we get guava from Hive now, which is r09
instead of 11 like we had specified. I think this is better actually, because
if we're integrating with these other tools we want the same library versions
for the most part. If we do want to explicitly list a dependency (bump guava
for example) we could do that but I haven't at this time.
Also not that I've simplified the configurations to two - default and test.
Some jars like jdeb & rat are not technically "test" jars but I decided it was
better to put them there and keep things simple than have a large number of
configurations because that's confusing. The "default" jars are mapped to the
"compile" maven scope when generating the pom file, so things work roughly as
you would expect when depending on hcatalog-core.jar.
ivy/libraries.properties
Add maven-ant-tasks, which we use to publish jars in the local repo. We'll also
use these when publishing to the central repo.
storage-handlers/build.xml
Mainly classpath stuff, and deleting a bunch of ivy tasks that are now
consolidated into dependencies.xml.
storage-handlers/hbase/ivy.xml
Again a really simplified dependencies file now that we can depend on
hcatalog-core.jar.
This addresses bug HCATALOG-450.
https://issues.apache.org/jira/browse/HCATALOG-450
Diffs (updated)
-----
ant/dependencies.xml PRE-CREATION
ant/deploy.xml PRE-CREATION
ant/test.xml PRE-CREATION
build-common-new.xml 3c5e1a0
build-common.xml 9030d28
build.properties PRE-CREATION
build.xml 529658f
hcatalog-pig-adapter/build.xml 8b4f6a4
hcatalog-pig-adapter/ivy.xml 2a278f0
ivy.xml 268706c
ivy/libraries.properties 74033d7
src/test/all-tests a945de6
src/test/excluded-tests 645ad15
src/test/org/apache/hcatalog/cli/TestEximSemanticAnalysis.java eedda9e
src/test/org/apache/hcatalog/cli/TestEximSemanticAnalysis.java.broken
PRE-CREATION
src/test/org/apache/hcatalog/cli/TestPermsGrp.java 506a4e2
src/test/org/apache/hcatalog/cli/TestPermsGrp.java.broken PRE-CREATION
storage-handlers/build.xml 6777ce8
storage-handlers/hbase/build.xml f8ae11a
storage-handlers/hbase/ivy.xml eaa4ed0
webhcat/svr/build.xml 87d72ab
webhcat/svr/ivy.xml 428c0ae
Diff: https://reviews.apache.org/r/6012/diff/
Testing
-------
Thanks,
Travis Crawford