Eric Bodden Sable Research Group McGill University 3480 University Street H3A 2A7 Montréal, Québec, Canada bodden@acm.org |
Florian Forster LG Programmiersysteme Fernuniversität in Hagen Universitätsstraße 1 58097 Hagen, Germany florian.forster@feu.de |
Friedrich Steimann LG Programmiersysteme Fernuniversität in Hagen Universitätsstraße 1 58097 Hagen, Germany steimann@acm.org |
Abstract: Infinite recursion is a known problem of aspect-oriented programming with AspectJ: if no special precautions are taken, aspects which advise other aspects can easily and unintentionally advise themselves. We present a compiler for an extension of the AspectJ programming language that avoids self reference by associating aspects with levels, and by automatically restricting the scope of pointcuts used by an aspect to join points of lower levels. We report on a case study using our language extension and quantify the changes necessary for migrating existing applications to it. Our results suggest that we can make programming with AspectJ simpler and safer, without restricting its expressive power unduly.
java -jar abc-meta-1.0.0.jar <standard abc arguments>You can get help on the command line arguments by typing
java -jar abc-meta-1.0.0.jar -helpIn order to run the original version of abc, type:
java -jar abc-meta-1.0.0.jar -ext abc.main <standard abc arguments>We provide three tests we used for unit testing for you in order to get a feeling for how the new language behaves. You can run them by typing:
java -jar abc-meta-1.0.0.jar <file name>