This release is primarily a feature upgrade extending the Byteman rule language to support two new types of rules:
interface rules -- rule code is injected through an interface into all classes which implement the interface
overriding rules -- rule code is injected down class hierarchies into a both the target class's method and into the methods of subclasses which provides an overriding implementation
These two new modes of injection may be used in isolation but they also work in combination . For example, the following rule adds trace code to the run method of every implementor of Runnable and to every overriding implementation, effectively tracing every run() operation in the JVM.
RULE trace any Runnable.run() call
DO System.out.println("Running runnable " + $0 + " " + $0.getClass().getName())
Full details of the syntax and operation of these two new rule types are included in the 1.2.0 programmers guide.
The release also includes several bug fixes including, most notably, a much more reliable implementation tool bytemancheck, which performs offline rule syntax and type checking. Release notes are available from the project downloads page http://www.jboss.org/byteman/downloads.