Thursday, 21 April 2016

Byteman 3.0.5 has been released

Byteman 3.0.5 is now available from the Byteman downloads page

This is primarily a bug-fix release for Byteman 3.0.4 but it also contains a few new features
  • COMPILE/NOCOMPILE clauses can now be inserted into scripts at the top level or into individual rules to enable/inhibit compilation to bytecode
  • A new LinkMap builtin API has been added to the default Helper, allowing arbitrary data to be easily saved and retrieved from one rule execution to the next. Kudos to Red Hat's Richard Achmatowitz for implementing this extremely useful new API.
  • A new location specifier AT EXCEPTION EXIT has been provided allowing rules to be triggered by exceptions passing out of a method. After rule processing the original exception is  implicitly rethrown unless the rule explicitly THROWs a new synthetic exception or else swallows the exception and perform a synthetic RETURN. I'm very grateful to Red Hat's Gary Brown for pushing such an elegant implementation of this feature in my direction when I was convinced it was going to be my worst plumbing nightmare.
  • The DTest contrib package has been updated to allow instrumentation of a class by name as an alternative to providing the class instance. Many thanks to Red Hat's Ondrej Chaloupka for providing this update.
Full details of the first three features are provided in the latest Programmer's Guide prepared from Asciidoc sources. This latest version of the guide also includes details of the prototype module import API for use with JBoss Modules. Another grateful shout-out to Red Hat's Marco Rietveld for his help in converting over from LibreOffice.

Details of the DTest contrib API updates are provided in the README for the package. n.b. Ondrej is working on further extensions to the DTest API to support instrumentation of interfaces by name and support instrumenting down hierarchies. These should be available in the next Byteman release.