[
https://issues.apache.org/jira/browse/HCATALOG-434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13402838#comment-13402838
]
Travis Crawford commented on HCATALOG-434:
------------------------------------------
The strategy I took with this patch is moving towards what we eventually want,
while making the fewest possible changes. I explicitly have tried keeping this
change as small as possible.
build.xml
We now create hcatalog-core.jar, which is the client jar with pig stuff
removed. After creating hcatalog-pig-adapter.jar we merge them together back
into hcatalog.jar like we have today. I took this approach because we'll be
able to publish the core jar now, and will make it easier to move the core
stuff into a subproject.
Some of the core tests use pig, so we put the pig adapter jar on the core
classpath. This is not ideal but we can update the tests incrementally then
break this dependency.
ivy.xml
We now list the artifacts that are published, so they can be published to the
local cache. This will be used at build time in the future when we build the
core jar and publish, then subprojects can include through standard ivy stuff.
Note we publish hcatalog-server-extensions here - this should move to a
subproject but in a future change.
build-common-new.xml
I'm not thrilled about creating a new common build file, but when everything
has become subprojects this can just become build-common.xml. It bakes in
maven-repo layout assumptions instead of making that flexible, which will allow
us to migrate to maven in the future without additional file reorgs.
hcatalog-pig-adapter/ivy.xml
I used a simpler configuration here because more complex is not needed.
Eventually I'd like to depend on org.apache.hcatalog-hcatalog-core and get
dependencies that way, but that does not happen at this time.
hcatalog-pig-adapter/build.xml
Simply set some paths and use the build-common-new tasks. Other subprojets
would use this same model.
> Package HCatalog pig support as a separate jar
> ----------------------------------------------
>
> Key: HCATALOG-434
> URL: https://issues.apache.org/jira/browse/HCATALOG-434
> Project: HCatalog
> Issue Type: Task
> Reporter: Travis Crawford
> Assignee: Travis Crawford
>
> HCatalog's pig support should be moved into a separate jar.
> DETAILS:
> One of HCatalog's major goals is making the HiveMetaStore accessible to other
> processing frameworks (pig for example). If we bundle everything inside a
> single hcatalog.jar it will have a large number of processing framework
> dependencies.
> For example, let's say HCatalog has the core classes, and adaptors for pig &
> scalding all bundled inside a single hcatalog.jar. The maven dependencies
> will include both pig & scalding. Projects integrating with hcat either end
> up with way more dependencies than necessary, or they need to pick & choose
> which dependencies to include in their project.
> Packaging pig support as a separate jar allows users to get the pig support
> without dependencies from other processing frameworks.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira