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

Uwe Schindler updated LUCENE-2333:
----------------------------------

    Attachment: shai-compile-fix2.patch
                shai-compile-fix.patch

Here 2 patches:

*The first one only changes the following:*

It now does not do any "short-circuit" checks for the core.jar available, 
instead solely uses a property that is set by the parent.

This works good, now always when you compile a contrib solely (inside its 
folder), the core is compiled. If you run from top-level build.xml the 
top-level build compiles the core as dependency and passes the "core.compiled" 
property down to the contrib-crawl.

In contrib are still other short-circuits like this. E.g. The benchmark contrib 
checks, if the jar files of other contribs it depends on are available and only 
if not recompiles. This leads to the same problem is you change one of the 
depends-on contribs source code. In this case there is no way around a 
top-level clean, sorry.

*The second patch improves more:*

It removes the dependency to build the jar file of lucene, it simply uses the 
classes/java folder. It needed some more refactoring, to get rid of the 
${lucene.jar} property. In contrib-build.xml now a separate base.classpath ref 
is defined that can be used everywhere to extend the default classpath, also 
set by contrib-build.xml.

The patch also contains a refactoring of contrib-ant, to use a resources-folder 
like other contribs. To get contrib-ant jar file compile correctly, do the 
folldoing svn commands inside contrib/ant:
{noformat}
svn mkdir src/resources/org/apache/lucene/ant/
svn move src/java/org/apache/lucene/ant/antlib.xml \
  src/resources/org/apache/lucene/ant/antlib.xml
{noformat}

> Failures during contrib builds, when classes in core were changed without ant 
> clean
> -----------------------------------------------------------------------------------
>
>                 Key: LUCENE-2333
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2333
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Build
>            Reporter: Uwe Schindler
>            Assignee: Uwe Schindler
>             Fix For: 3.1
>
>         Attachments: shai-compile-fix.patch, shai-compile-fix2.patch
>
>
> From java-dev by Shai Erera:
> {quote}
> I've noticed that sometimes, after I run test-core and test-contrib, and then 
> change core code, test-contrib fail on NoSuchMethodError and stuff like that. 
> I've noticed that core.jar exists under build, and I assumed it's used by 
> test-contrib, and probably is not recreated after core code has changed.
> I verified it when looking in contrib-build.xml, which defines a property 
> lucene.jar.present which is set to true if the jar is ... well, present. 
> Which I believe is the reason for these failures. I've been thinking how to 
> resolve that, and I can think of two ways:
> (1) have test-core always delete that file, but that has two issues:
> (1.1) It's redundant if the code hasn't changed.
> (1.2) It forces you to either jar-core or test-core before you test-contrib, 
> if you want to make sure you run w/ the latest jar.
> or
> (2) have test-contrib always call jar-core, which will first delete the file 
> and then re-create it by compiling first. Compiling should not do anything if 
> the code hasn't changed. So the only waste would be to create the .jar, but I 
> think that's quite fast?
> Does anyone, with more Ant skills than me, know of a better way to detect 
> from test-contrib that core code has changed and only then rebuild the jar?
> {quote}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to