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.
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)
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).
Sample Eclipse project
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.
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