Equinox Aspects 1.0 M6 - New and Noteworthy

During the M6 timeframe we had a lot of very fruitful discussions with the AJDT team to make Equinox Aspects easier to use and to have more fine-grained control of the actual weaving. The goal of M7 will be to implement those changes.


General


Discussions on different use-cases Triggered by Andy Clement and Andrew Eisenberg we discussed some major improvements how to control the weaving of aspects within the Equinox Aspects setting. The discussions and basic design decisions are made and will be implemented during the next milestone timeframe. Please follow bug #255682 to stay tuned.

Weaving


AspectJ bundle versions Because of some major improvements within the loadtime weaving implementation of AspectJ we now have a version dependency on at least version 1.6.2 of the AspectJ weaver package imports. This avoids confusion if you have multiple versions of those packages installed (which is the case if you have AJDT and SpringIDE installed together, for example). If you have the latest AJDT versions in use, you should have no problems. If you definitely need Equinox Aspects to work with older AspectJ weaver versions, please let us know.

Caching


Asynchronous cache writing We got some bug reports regarding the standard cache implementation. That seemed to cause problems with the file handling in some (mostly OS-dependent) situations. The major problem was that those problems caused the complete system to hang. We now reimplemented the cache writing for the standard caching service to an asynchronous mode. Woven class bytecodes are put into a bounded concurrent queue and a different thread takes care to write those bytes to the appropriate directory. This makes the cache handing even faster since the thread that caused the weaving is no longer used to write the bytes to the cache and can continue right away.

The above features are just the ones that are new since the previous milestone build. Summaries for earlier 1.0 milestone builds: