All these validations rely on the definition of a pointcut expression. The one used in FeaTransformPointcutStub is the following:

A map is a pointcut expression if
- all stubs that bound that map are pointcut stubs from the same concern AND
- all stubs contained in that map have no plugin bindings

However, this definition may be too simplistic:
- It does not allow for using pointcut expression as plugin from another pointcut expression
(Pay attention to recursive maps when dealing with this limitation)
- It allows for regular maps (maps without pointcut stubs) to have a pointcut expression as plugin
- Aspect maps (maps with p ointcut stubs) from different concern cannot reuse a pointcut expressio

Thought a bit more about this. I think the solution is to translate all maps that are assigned to a concern and to not assign pointcut maps to a concern. It is correct that they may be reused by different concerns anyway.

Hence, there would be other checks required such as: it should not happen that a regular map contains a pointcut map, but a pointcut stub may contain regular maps and pointcut maps.

-- GunterMussbacher - 23 Feb 2012

FormForFeature edit

Feature Name FeaPointcutExpressionValidation
Sequence 600
Description These validations are not specific to "AoUrnToRam" but are general to "AoUrn". Thus, they should be implemented in jUcmNav.

-Anything pointcuts(...) are not allowed outside pointcut expressions
-Wildcard responsibilites(*) are not allowed outside pointcut expressions
-Pointcut stubs are not allowed inside pointcut expressions
-Pointcut expressions are not allowed to have an aspect map (a map that contains pointcut stubs) as plugin
-Regular maps (maps without pointcut stubs) are not allowed to have a pointcut expression as plugin
Author Stéphane Leblanc
Topic revision: r2 - 23 Feb 2012, GunterMussbacher
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback