Summary: | [itds] Problem with ITDs appearing to be applied twice (and clashing) for binary types | ||
---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Andrew Clement <aclement> |
Component: | Compiler | Assignee: | Andrew Clement <aclement> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | P2 | CC: | aclement, jcaplan |
Version: | DEVELOPMENT | ||
Target Milestone: | 1.5.4 | ||
Hardware: | Macintosh | ||
OS: | Mac OS X - Carbon (unsup.) | ||
Whiteboard: |
Description
Andrew Clement
2007-10-18 05:54:26 EDT
I think option 2 makes more sense anyway. It seems to me that the end result of building 1 jar or n jars should be the same as long as I use aspectpath instead of classpath. I'm thinking in particular of the case where A.jar contains ITDs that would apply to B.jar, and C.aj uses classes from B.jar as if they were woven with A.jar. Now it appears that option 1 would preclude a build like <target name="C"> <aj:iajc source="1.5" target="1.5" srcdir="."> <classpath location=".\aspectjrt.jar"/> <aspectpath path="A.jar:B.jar"/> <include name="C.aj"/> </aj:iajc> </target> whereas option 2 would just work. Option 2 is fixed in the codebase now, just having trouble releasing it as cruisecontrol is playing up. Option 2 would just work for your scenario - but I worry that if you forget to weave B.jar, then C will crash at runtime. When we could have put out an error when compiling C that reminded you that you should have woven B.jar. Is there some circular dependency scenario you are thinking of that meant the jars could not be woven in a logical order? the latest download on the dev page includes the fix! hurray. going to mark as fixed now - gotta get it off my list of things to do for 1.5.4 |