Summary: | LTW Includes Should be Or'ed ... with Patch | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Tools] AspectJ | Reporter: | Ron Bodkin <rbodkin+LISTS> | ||||||
Component: | Compiler | Assignee: | Alexandre Vasseur <avasseur> | ||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||
Severity: | normal | ||||||||
Priority: | P3 | ||||||||
Version: | DEVELOPMENT | ||||||||
Target Milestone: | 1.5.0 M3 | ||||||||
Hardware: | All | ||||||||
OS: | All | ||||||||
Whiteboard: | |||||||||
Attachments: |
|
Description
Ron Bodkin
2005-07-15 14:57:07 EDT
Created attachment 24859 [details]
patch to accept includes if none specified or if any match
One additional thought: I think the default case for no includes should be to NOT weave. That way if you are loading classes into a classloader environment with no definitions (no aop.xml file), it doesn't impose the hit of weaving. For example, I have an instance of Tomcat with one small Web App in it, which has an aop.xml file associated with it. But my Tomcat & system classloader do not. With the current rule that no include includes something, (and my first patch) start up times for Tomcat with LTW are about three times as long (11 seconds versus 4.5 seconds) as they are when you only weave into a classloader when there are includes. An even better approach for this would be allowing no includes to include everything but not accepting any classes if there's no aop.xml for this classloader (nor a system-wide AJ5 def file). At a minimum, it would be good to restore optimized support for the "weave everything" case. Anyhow, here's another patch that allows includes if any match AND that refuses to include anything if no includes exist. Created attachment 24864 [details]
this version only weaves if there's an include for this weaving container
Significantly speeds up loading when many classes are not being woven (e.g.,
weaving into a Web app but not a container).
1/ OR the <include ..> Can we all vote (Andy / Adrian / Jonas). ie should we AND or OR the <include> in aop.xml ? I am fine with both. I think we should OR them as Ron suggest (it is like a list, if someone needs an AND, he can use it in one type pattern) 2/ have <include> mandatory for LTW Ron suggest that <include within="*"> be mandatory for LTW the reason is to speed up things. I don't agree on that one - this makes it cumbersome (and even contradictory with 1/ if ones want to refine the "*"...). LTW sure needs to be optimized, but thru other means. include is OR (was a bug, not a spec issue) by default no include means weave ALL and we won't change that committing in some minutes remind to close with M3 was M3 remind was M3 remind |