[ 
https://issues.apache.org/jira/browse/PIG-2362?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cheolsoo Park updated PIG-2362:
-------------------------------

    Attachment: PIG-2362.7.patch

I updated the patch based to trunk and fixed a few minor issues. Here is what I 
did:
- Re-based to trunk.
- Incorporated PIG-2979 to get local mode working with hadoop 2.0.x.
- Incorporated PIG-2885 to preserve it.
- Removed duplicate code in the fileset definitions of included jars for w/ and 
w/o dependencies using patternset.
- Included joda-time.jar in pig-withouthadoop.jar as well as in pig.jar. It 
should but wasn't included.
- Fixed a typo in the buildJar macrodef: conf/pig-default.properties => 
src/pig-default.properties. This was causing e2e test to fail.

Testing done:
- ant jar -Dhadoopversion=[20|23]
- ant test -Dhadoopversion=[20|23]
- ant test-e2e-local -Dhadoopversion=[20|23]
- ant test-e2e -Dhadoopversion=[20|23]
- ant clean
- ant docs

I also confirmed that there is no diff of the following command between before 
and after:
{code}
jar -tvf pig.jar | awk '{print $8}'
{code}

Thanks!
                
> Rework Ant build.xml to use macrodef instead of antcall
> -------------------------------------------------------
>
>                 Key: PIG-2362
>                 URL: https://issues.apache.org/jira/browse/PIG-2362
>             Project: Pig
>          Issue Type: Improvement
>            Reporter: Gianmarco De Francisci Morales
>            Assignee: Gianmarco De Francisci Morales
>            Priority: Minor
>             Fix For: 0.11
>
>         Attachments: PIG-2362.1.patch, PIG-2362.2.patch, PIG-2362.3.patch, 
> PIG-2362.4.patch, PIG-2362.5.patch, PIG-2362.6.patch, PIG-2362.7.patch
>
>
> Antcall is evil: http://www.build-doctor.com/2008/03/13/antcall-is-evil/
> We'd better use macrodef and let Ant build a clean dependency graph.
> http://ant.apache.org/manual/Tasks/macrodef.html
> Right now we do like this:
> {code}
> <target name="buildAllJars">
>   <antcall target="buildJar">
>     <param name="build.dir" value="jar-A"/>
>   </antcall>
>   <antcall target="buildJar">
>     <param name="build.dir" value="jar-B"/>
>   </antcall>
>   <antcall target="buildJar">
>     <param name="build.dir" value="jar-C"/>
>   </antcall>
> </target>
> <target name="buildJar">
>   <jar destfile="target/${build.dir}.jar" basedir="${build.dir}/classfiles"/>
> </target>
> {code}
> But it would be better if we did like this:
> {code}
> <target name="buildAllJars">
>   <buildJar build.dir="jar-A"/>
>   <buildJar build.dir="jar-B"/>
>   <buildJar build.dir="jar-C"/>
> </target>
> <macrodef name="buildJar">
>   <attribute name="build.dir"/>
>   <jar destfile="target/${build.dir}.jar" basedir="${build.dir}/classfiles"/>
> </macrodef>
> {code}

--
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

Reply via email to