Bug 247331 - [plan] [ltw] Revisit LTW and ensure meets the needs of AOSGi (Equinox aspects)
Summary: [plan] [ltw] Revisit LTW and ensure meets the needs of AOSGi (Equinox aspects)
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: LTWeaving (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Mac OS X - Carbon (unsup.)
: P3 enhancement with 5 votes (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-15 14:42 EDT by Andrew Clement CLA
Modified: 2013-06-24 11:08 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Clement CLA 2008-09-15 14:42:50 EDT
In 1.6.1 the ltw support was tuned to optimize for general usage but no direct testing was done for the behaviour under Equinox Aspects.  This bug report is to investigate the current behaviour of ltw under Equinox Aspects and address any problems.  Possible problems include:

- incorrect classloader model that does not sit well with OSGi
- reweaving support (ltw of already woven bundles)
- memory usage: (1) in terms of memory usage shrinking over time for weavers that have done their job and are no longer in use (2) in terms of fixing any memory leaks
Comment 1 Martin Lippert CLA 2008-10-04 04:41:03 EDT
Great to see this entry! :-)

I have two thoughts in mind that might be interesting for this:

- incorrect classloader model: In the current implementation each bundle gets its own ltw-world for type resolution (which is fine from my point of view). A drawback of this is that shared types are loaded, parsed, and cached multiple types by different ltw-worlds. I could be wrong here but this is a field that should be investigated. See also bug #243583

- reweaving support: we currently support re-weaving of woven bundles with equinox aspects and all the other nice dynamic features of OSGi (including installing/uninstalling aspect bundles at runtime). Therefore we make usage of the OSGi dynamic features to update bundles when needed to trigger new classloading. This works fine in current equinox aspects builds but assumes that bundles behave nicely in an dynamic environment. What kind of support do you think of when saying reweaving support?
Comment 2 Andrew Clement CLA 2013-06-24 11:08:10 EDT
unsetting the target field which is currently set for something already released