The Open University of Israel
Software Engineering Research Lab
Research Thesis: Pluggable Aspect Instantiation Models
An aspect encapsulates not only a crosscutting behavior, but also a crosscutting
state. When aspects are stateful, there is a need to specify and control their instantiation. Unfortunately, aspect instantiation is a hard-wired feature in AspectJ. This
feature cannot be customized by the application programmer. Specifically, there are
six pre-defined instantiation models to choose from, each designated by a keyword:
In this work,
we introduce a new language mechanism and keyword 'perscope' that lets third-parties
define custom aspect instantiation models. This new keyword replaces the six existing
keywords in AspectJ, and may eliminate the need for introducing future ones.
Documentation and Resources
- The complete thesis is available in a pdf format.
- The main paper that describes the work, and was published in the SC'11 conference.
- This project is based on modifying the AspectJ code base version 1.6.5. The original AspectJ code can be found here.
- The entire code of the project is hosted in github, with the following major components:
- The sources are located in src.
- The caching example demonstrates the use of the perscope aspects. A detailed explanation can be found in the thesis.
- The Low of Demeter benchmark was implemented as well.
- The Persession implementation.
- In order to build the modified AspectJ compiler and run the tests the test scripts should be used.