Path Expression Pointcuts: Abstracting over Non-Local Object Relationships in Aspect-Oriented Languages
In aspect-oriented programming, aspects require access to join point information for selecting join points within pointcuts as well as for specifying aspect-specific behavior at such join points within advice. Unfortunately, aspectoriented systems typically provide only local information about join points, i.e. information that is directly accessible from the execution context at the corresponding join points like the target object within a method call. However, there are many situations where the needed information is not directly available and relies on object information that is non-local concerning the execution context at the corresponding join points. As a consequence, developers are forced to specify a number of work-arounds - pointcuts and advice that neither reflect on the conceptual join point selection nor purely on the conceptual aspect behavior. In this paper, we show recurring situations in which â€ślocalâ€ť join point information is not sufficient for specifying aspects. We propose so called â€śpath expression pointcutsâ€ť that permit to abstract over (non-local) object-relationships within pointcuts - and show that this overcomes the problem.
Full Text: PDF