Have You Ever Had These Questions When Writing AspectJ Pointcuts?

  • “Does this pointcut really work?”
  • “Why doesn’t that pointcut work?”

PointcutDoctor is the tool helping you find the answers.

See the PointcutDoctor presentation (7'37'') and a live demo (5'37'').

 

 News

- Apr 27, 2008:  Pointcut Doctor is now open source!.  You can click here to see in your browser or follow sourceforge's instructions to check out the source code.

- Dec 16, 2007:  Thanks to the AspectJ team for their superb support and help.  PointcutDoctor supports unmodified AJDT 1.5.1 RC1+ now!

 Introduction

Pointcuts in general and AspectJ pointcuts in particular are hard to write. To write a correct pointcut, a developer needs to understand the subtleties of the pointcut language as well as how the pointcut matches against various program elements across her entire code base.

Ascertaining that a pointcut is correct in a given code base means understanding how this pointcut matches join points across the code base. This requires a global understanding of the code at a level of detail that is not easy to obtain or remember for developers. Fortunately, developers can be assisted by IDE-based tools that provide an
explicit representation of the join points a pointcut matches in a given code base. AJDT already provides some useful information in this regard. However, we claim that AJDT has a kind of "blind spot": the information provided by AJDT is insufficient for a developer to determine a pointcut's correctness.

PointcutDoctor provides two kinds of information:
 - Almost matched join point (shadows), i.e. jp shadows that are not matched by the pointcut but very similar to the ones that are matched;
 - Highlighting and in-place explanation, i.e. why a specific join point is (or isn't) matched by the given pointcut.  (see the screenshots for details)

Screenshots

 

Download

  • Update site: http://pointcutdoctor.sf.net/updatesite
  • Click here to download the binary zip file.  Please email us if you need the source code of PointcutDoctor before we release it into the public CVS on sourceforge.net.

 

System Requirements

Systems capable of running Eclipse 3.3+ and AJDT 1.5.1 RC1+

 

Publications

  • AOSD 2007 Demo slides: PointcutDoctor:Understanding and diagnosing AspectJ Pointcuts PowerPoint PDF
  • AOSD 2007 Demo Proposal: PointcutDoctor:Understanding and diagnosing AspectJ Pointcuts PDF

People

Lingdong Ye            email: lintonye AT gmail.com

Kris De Volder         email: kdvolder AT cs.ubc.ca

 

 

Acknowledgments

We would like to thank Lingqiang Ye for his awesome artwork.

Free blog counters