|
January 2004
[
avasseur
]
11:51, Tuesday, 6 January 2004
Today I finished my implementation of the new AspectWerkz pointcut expression language. AspectWerkz had already a good usability level as regards pointcut expression. Most of the needed syntax to bind pointcuts with advice or introduction had been implemented by Jonas, based on an algebra backed by Jexl.
/** @Execution com.*.Foo.set(..) */ /** @Execution com.*.Foo.get(..) */ /** @Around pc1 OR pc2 */ } The previous implementation supported the complete AND / OR / NOT algebra: What I found bad with this Jexl based implementation was the following:
After some digging in Jexl extensibility I decided to start my own boolean expression implementation based on a JJTree grammar. In two days I had the complete operator set I needed, and a true Visitor pattern exposure. In other two days I was able to refactor Jonas' work to plug my JJTree implementation in AspectWerkz. It allowed to solve a pending issue we had in the 0.9.RC1 release as regards cflow support for model 2 JSR-175 style Aspects. Now we have many advantages at the hand:
From a user point of view this grammar add a new operator for cflow: the IN and NOT IN (or ! IN etc ...). In the next month, I should have time to add the needed glue to support several level of cflow composition - since this is already supported by our JJTree grammar : This time, the trick will be more at the runtime during the joinpoint evaluation. |