Table of Contents

0.8.5M1 Release Notes

Important upgrade information:

If you are updgrading from a version earlier then:

Latest public build detailed information: Click here. See also for known limitations and bugs of current version.

Major Changes for latest build:

Terminology Compatible with AspectJ

Stateful Aspects Improvements

//makes sure no intermeidate transitions between t1 and t2 are allowed. Intermediate transitions that are not in the context pointcut are allowed though
TestHook(m1(..args),m2(..args),context(..args)) {
    strict[execution(context)]:
    t1: execution(m1)>t2;
    t2: execution(m2);
}
//makes sure no intermeidate transitions between t1 and t2 are allowed. 
TestHook(m1(..args),m2(..args),context(..args)) {
    strict:
    t1: execution(m1)>t2;
    t2: execution(m2);
}

Various language extensions

around throwing(IOException ex) {
     Log.log(ex);
     if(shouldRethrow)
        throw ex; //exception is rethrown
     else return null; //exception is captured and not thrown further (not possible with after throwing)
}
//this example only works when compiling using: target:1.5 flag; Use wrapper classes (Integer) with 1.4
around returning(int price) {
     return price*discountPercentage;
}
logging.TestHook test = new logging.TTestHook(* Serializable.*+(*)); //matches all methods on classes that implement the Serializable interface.

Weaving Technology

Internal Updgrades