Menu

#121 Include src folder specific output folders in builder search

open
None
1
2007-01-12
2005-07-05
Joe Trewin
No

After a lot of confusion I've finally identified an
interesting buglet.

I had a project which contained three source folders -
one for non-tapestry related code which was built to
the project default output directory (src ->
build/classes), one for unit tests (test -> build/test)
and one for Tapestry code (tapestry/src ->
tapestry/context/WEB-INF/classes).

The latter two had their output folders manually specified.

I kept getting issues when placing .library, .jwc or
.html files in the tapestry/src directory - Spindle
would display warnings:

Tapestry can not see XXX at runtime.

After a bit of trial and error I realised that this can
only be resolved by altering the setup so that the
default output folder for the project is the Tapestry
one (tapestry/context/WEB-INF/classes), and making the
previous default a manual one.

I suppose that Spindle only checks things through the
default output folder?

Anyway, might save others who also have multiple
source/output folders some confusion.

Discussion

  • Geoffrey Longman

    Logged In: YES
    user_id=387057

    This is a strange bug. Spindle does not look in any output
    folders.
    Mind if I ask you to create a simple project that reproduces
    the problem and attach it to this bug?

    thx.

    Geoff

    PS. Are you referencing the library in the .application
    file? (library tag)

     
  • Joe Trewin

    Joe Trewin - 2005-07-05

    Logged In: YES
    user_id=1285028

    I've attached a sample eclipse test project (created using
    Eclipse 3.1 - official release - and Spindle 3.2.0, on
    Windows XP, although the problem also occured in Eclipse 3.0
    with Spindle 3.1.x).

    The project has just one src directory, with a non-default
    output directory that is different to the default one.

    I've added a library (in the default package) with a single
    component in it and referenced it in the .application file
    (in WEB-INF).

    If you open the project you'll notice Spindle warnings:

    Tapestry can not see 'Test.html' at runtime.
    Tapestry can not see 'Test.jwc' at runtime.
    Tapestry can not see 'Test.library' at runtime.

    If you then alter the project properties so that the default
    directory is the WEB-INF/classes directory, the warnings
    will disappear (may need to clean the project to force this).

     
  • Joe Trewin

    Joe Trewin - 2005-07-05

    Sample Eclipse project

     
  • Joe Trewin

    Joe Trewin - 2005-07-05

    Logged In: YES
    user_id=1285028

    Little bit more playing around and the real cause seems to
    be if the default output directory is not the
    WEB-INF/classes directory.

     
  • Geoffrey Longman

    • labels: 411697 -->
    • summary: Library elements unresolved for non-default output folders. --> Include src folder specific output folders in builder search
     
  • Geoffrey Longman

    Logged In: YES
    user_id=387057

    ok I get it now. The issue is that Spindle must exlcude
    tapestry files from the output folder since they are just
    copied by the compiler anyways.

    In it's current form Spindle uses the default output folder
    as the basis for deciding what should be excluded. Extra
    output folders attached to individual source folders are not
    included in the computation.

    Thus if the compiler is copying files to WEB-INF/classes
    based on a src folder setting and WEB-INF/classes is not
    also the default output folder..then Spindle will during its
    search find the copied spec files in WEB-INF/classes. After
    collecting the results of it's search Spindle goes on its
    merry way doing it's thing, removing files from it's list as
    they are processed. Any files left in the list at the end
    are assumed to violate the Tapestry lookup rules and are
    marked with the message you see.

    **** WORKAROUND****

    The workaround is to set the default output location and not
    to set any src folder specific output locations.

    ****************************

    This is not a bug but rather a feature request. Thanks for
    supplying the example project - it really helped clarify the
    issue quickly.

    Geoff

     
  • Geoffrey Longman

    • priority: 5 --> 1
     

Log in to post a comment.

MongoDB Logo MongoDB