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.
//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); }
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.