[
https://issues.apache.org/jira/browse/CRUNCH-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13453717#comment-13453717
]
Vinod Kumar Vavilapalli commented on CRUNCH-60:
-----------------------------------------------
bq. My only strong objection would be putting o.a.crunch.test into
src/test/java, since it's designed to be used by clients who are writing unit
tests and I'm against having dependencies on test-jar targets. common/lib makes
the most sense logically.
Not sure why you don't like test-jar targets, but sure we can put them in
common/lib.
bq. Unfortunately, it's a bit complicated because right now there are lots of
cyclic package dependencies (see [1], the picture there shows Crunch's
dependency graph).
Agreed, we should start somewhere and start fixing them one by one.
bq. I think we should first draw a high-level package diagram (just the top
packages) that shows which package depends on which.
My description of the packages above with the dependencies as follows?
- crunch-api
- crunch-lib depends on crunch-api
- crunch-impl depends on crunch-api and crunch-lib
> Splitting the core crunch module
> --------------------------------
>
> Key: CRUNCH-60
> URL: https://issues.apache.org/jira/browse/CRUNCH-60
> Project: Crunch
> Issue Type: Bug
> Reporter: Vinod Kumar Vavilapalli
>
> It looks like the api is interspersed with the implementation details and
> libraries/utils a bit. How about:
> - An api module which only has the APIs that users need to code against
> -- Most of org.apache.crunch
> -- org.apache.crunch.types.*
> - A common/lib module
> -- package org.apache.crunch.fn
> -- some stuff like MapFn, FilterFn from org.apache.crunch package
> -- All of org.apache.crunch.lib.* that is not included in the other modules
> above and below
> -- org.apache.crunch.util
> -- org.apache.crunch.tool
> - A crunch-impl module where the rest of it resides.
> -- All of *impl* packages
> -- org.apache.crunch.hadoop.mapreduce.lib.jobcontrol
> -- org.apache.crunch.hadoop.mapreduce.lib.output
> -- org.apache.crunch.materialize?
> Also move org.apache.crunch.test to src/test/java.
> Need help on placing org.apache.crunch.io.* correctly.
> Note that despite all this, if necessary, we can choose to have a single
> artifact (jars etc) to avoid users the onus of importing multiple modules.
> Thoughts?
--
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