Tuesday, 7 March 2017

Byteman 3.0.8 has been released

Byteman 3.0.8 is now available from the Byteman downloads page and from the Maven Central repository.


This is a minor update for the preceding release 3.0.7. It fixes a small problem in the top-level pom which was causing artifact resolution issues for some Maven-based projects wishing to consume byteman. It also contains some cosmetic tweaks to the dtest contributed library. More details can be found in the Release Notes.

Note that release 3.0.8 is intended for use on JDK6-8. Preview release Byteman 4.0.0-BETA3 is available for use on early access releases of JDK9.

Friday, 3 February 2017

Byteman 3.0.7 has been released

Byteman 3.0.7 is now available from the Byteman downloads page and from the Maven Central repository.

This is an update for the preceding release 3.0.6. It includes a few new features and bug fixes. More details can be found in the Release Notes.

Note that release 3.0.7 is intended for use on JDK6-8. Preview release Byteman 4.0.0-BETA3 is available for use on early access releases of JDK9.

Wednesday, 1 February 2017

Byteman 4.0.0-BETA3 has been released

Byteman 4.0.0-BETA3 is now available from the Byteman downloads page and from the Maven Central repository.



This is a preview release allowing Byteman to be used with the latest JDK9 release (Early Access release b151 for JDK 9 and later releases) which includes the Java Platform Module System (JPMS aka Jigsaw). It should also operate as normal on JDK6-8.

Byteman 4.0.0-BETA3 updates the previous BETA2 release to introduce some internal changes which make Byteman operate better on JDK9. In the process it resolves some outstanding issues relating to reference to non-public classes. See the Release Notes for more details.

Tuesday, 10 January 2017

Byteman 4.0.0-BETA2 has been released

Byteman 4.0.0-BETA2 is now available from the Byteman downloads page and from the Maven Central repository.



This is a preview release allowing Byteman to be used with the latest JDK9 release (Early Access release b151 for JDK 9) which includes the Java Platform Module System (JPMS aka Jigsaw). Byteman 4.0.0-BETA2 updates the previous BETA1 release to cope with minor changes in the JPMS implementation. It introduces no new functionality.

Thursday, 15 December 2016

Byteman 4.0.0-BETA1 has been released

Byteman 4.0.0-BETA1 is now available from the Byteman downloads page and from the Maven Central repository.


This is a preview release allowing Byteman to be used with the latest JDK9 release (Early Access release b148 for JDK 9) which includes the Java Platform Module System (JPMS aka Jigsaw). Byteman 4.0.0-BETA1 updates the previous BETA0 release to cope with minor changes in the JPMS implementation. It introduces no new functionality.

Wednesday, 19 October 2016

Byteman 4.0.0-BETA0 has been released

Byteman 4.0.0-BETA0 is now available from the Byteman downloads page and from the Maven Central repository.

This is a preview release allowing Byteman to be used with a JDK9 that includes the Java Platform Module System (JPMS aka Jigsaw). It implements basic support for Byteman to operate in a module-enabled JDK (e.g. Early Access release b138 for JDK 9 with Project Jigsaw or your own release built from the Jigsaw project jake tree).
This release implements one new capability. Byteman rules may now access members of classes which belong to a named module but are not exported by that module (or only have limited exports). For example, the following initialization for BIND variable name will now pass typecheck:

  RULE . . .
  . . .
  BIND
    th = Thread.getCurrentThread();
    name = th.name;
  . . .


This release will operate as normal on JDK6-8.
On JDK9 only one issue is expected: rule compilation will fail when a rule refers to public types that are not exported by their owning module. For example, the following initialization for BIND variable u will fail to compile

  RULE . . .
  . . .
  COMPILE
  BIND
    u = Unsafe.Unsafe();
  . . .

There is no problem invoking the constructor and, indeed, this code will work if the COMPILE option is switched to NOCOMPILE. However, when the rule is translated to bytecode the reference to variable u of type Unsafe leads to  a verify error,. Currently bytecode is generated in a class in the unnamed module and Unsafe, although it is a public class, is not exported to the unnamed module. This limitation will be addressed in a later release.

Monday, 19 September 2016

Byteman 4.0.0-ALPHA has been released

Byteman 4.0.0-ALPHA is now available from the Byteman downloads page and from the Maven Central repository.


This is an alpha release allowing Byteman to be used on JDK9. It does not provide full JDK9 support. It simply allows Byteman to cope with class files generated with a JDK9 version tag and avoids breakage when a jar contains a module-info.class.
 
This release will operate as normal on JDK6-8. On JDK9 only one issue is expected: members of classes which belong to a named module but are not exported by that module will be inaccessible from Byteman rules. The full 4.0.0 release will restore full access to all public and private members irrespective of module encapsulation.