[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[news.eclipse.technology.equinox] Re: AspectJ-enabled runtime implementation

Hi,

So, currently I use a cached approach. The crosscuts are applied to the
classfiles
when the plugin they live in is first loaded. Then the result is cached. So,
you
only have to wait once (during "installation"). Future loads of the platform
will
be (almost) as fast as before.
...
Concluding, I strongly recommend adopting a caching mechanism.


I think this is a very good idea. We could cache the modified bytecode of loaded classes somewhere (in the metadata area?).
In this case we need a mechanism to determine whether the aspects have changed since the last time the system was started. The numer of aspects (or a map to figure out which aspects way installed last time and which not) would not be enough. An installed aspect itself might have changed. If, for example, the pointcut definition is changed the aspect needs to be rewoven into the system the next time the system starts.

Afetr thinking a while I got the idea to use the version id of the plugin that contains an aspect to identify whether the aspect might have changed. That would be an easy way, I think. Also the caching mechanism could be disabled at development time.


-Martin