Byteman 1.3.0 has been released and is now available at the project
download page or from the JBoss maven repository. The release contains
several new features and about a dozen bug fixes. It also includes the
first byteman user contrib package, dtest.
dtest is a tool contributed by JBossTS project lead Jonathan Halliday
which uses Byteman to instrument and validate execution of distributed
New features added in release 1.3.0 include:
* lifecycle events for rules and helper classes.
the byteman agent will automatically invoke setup and tear down
operations when individual rules or rule sets are loaded and unloaded.
this is particularly useful when performance monitoring rule sets are
dynamically loaded into and unloaded from a long-running application
(e.g. JBoss AS). It allows auxiliary threads to be started and stopped
automatically, ports for dumping data to be opened and closed cleanly, etc.
* several new special variables which allow rules to access extra
trigger method state.
For example, a rule with location
AT CALL myMethod
which gets triggered just before the trigger method invokes myMethod can
reference $@ an Object holding the target object and call parameters.
* location specifiers with the new AT . . . ALL syntax.
AT . . . ALL locations specify injection at all matching locations. Sof
AT READ myField ALL
will cause the rule to be triggered at every point in the target method
where field myField is read.
* many new methods added to the built-in Helper class.
In particular these include support for querying, formatting and
printing the call stack. For example, a rule condition such as
IF callerEquals("MyClass.myCaller true)
can be used to ensure that the rule only fires when the target method is
called from method myCaller of class MyClass.
More details are available from the project blog. Full details provided
in the programmer's guide.
Show replies by date