[ 
https://issues.apache.org/jira/browse/LUCENE-4336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443644#comment-13443644
 ] 

Uwe Schindler edited comment on LUCENE-4336 at 8/29/12 10:21 AM:
-----------------------------------------------------------------

Here the patch. The javacc task is a little bit complicated (needed some help 
from blogs,...) because javacc.jar does not contain the ant task. The task is 
shipped with ANT and ANT expects a attribute called "javacchome", that must 
point to the home folder of an extracted javacc distribution (although it only 
uses the JAR). <javacc/> looks inside this dir for bin/lib and inside this dir 
for a file named javacc.jar (without version).
So we cannot use ivy:cachepath and ivy:retrieve is too unflexible (it allows to 
setup directory layout, but filename always contains version).
The trick here is a "handwritten" resolve/rewrite:
- get ivy:cachefileset for javacc-5.0.jar artifact
- create a "fake" release folder in ${build.dir} and then copy the cachefileset 
into it with a <mergemapper to="javacc.jar"/>.
- the javacc.home dir is then located in ${build.dir} and nuked on ant clean.

This patch also cleans up javacc at all. We only use javacc in the queryparser 
module so I moved all ant logic there. I also removed some unused tasks and 
properties.

I will commit soon.
                
      was (Author: thetaphi):
    Here the patch. The javacc task is a little bit complicated (needed some 
help from blogs,...) because javacc.jar does not contain the ant task. The task 
is shipped with ANT and ANT expects a attribute called "javacchome", that must 
point to the folder of an extracte javacc distribution (although it only uses 
the JAR). <javacc/> looks inside this dir for bin/lib and inside this dir for a 
file named javacc.jar (without version).
So we cannot use cachepath and ivy:retrieve is too unflexible (it allows to 
setup directory layout, but filename always contains version).
The trick here is a "handwritten" resolve/rewrite:
- get ivy:cachefileset for javacc-5.0.jar
- create a "fake" release folder in ${build.dir} and then copy the cachefileset 
into it with the mergemapper (to javacc.jar).

This patch also cleans up javacc at all. We only use javacc in the queryparser 
module so I moved all ant logic there. I also removed some unused tasks and 
properties.

I will commit soon.
                  
> javacc tasks should use ivy
> ---------------------------
>
>                 Key: LUCENE-4336
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4336
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Robert Muir
>            Assignee: Uwe Schindler
>         Attachments: LUCENE-4336.patch
>
>
> its a hassle to set this up currently. we should be able to
> just download javacc this way to run those tasks instead of
> making you download it yourself from the java.net site and
> setting build.properties options and stuff.

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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to