I think there should be a dependency
between the tests project and the Java 5 projects like weaver5. This would
greatly simplify the classpath issue. The weaver and weaver5 projects are
only separated to allow them to be built using separate compilers and target
a 1.3 runtime environment for the weaver. However there are actually shipped
together in the same aspectjweaver.jar. There _is_ a dependency when running
under Java 5 because we need Java15ReflectionBasedReferenceTypeDelegate
and this dependency had to be fixed up by the harness. I don't like that
and it means we have to keep a hard-coded CLASSPATH in AjcTestCase. It
also means I can't write JUnit test in loadtime without mocking out the
weaver.
Another thing that came to light during
my investigations is the amount of testing we actually do under JDK 1.3.
None if any of the AspectJ 5 features, including LTW, are tested under
1.3 although they should work and the tests pass. Also none of the ajc150/151/152
bug fixes are run under JDK 1.3. While this is a slightly different problem
from CLASSPATH it questions the value we get or should be getting out of
building and testing under 1.3. Currently the harness assumes which tests
you wish to run based on the environment you are in (JDK1.3/1.4/1.5); I
think this should be more explicit and more inclusive.
Matthew Webster
AOSD Project
Java Technology Centre, MP146
IBM Hursley Park, Winchester, SO21 2JN, England
Telephone: +44 196 2816139 (external) 246139 (internal)
Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
http://w3.hursley.ibm.com/~websterm/