The Dynamid members are pleased to announce the initial public release of JooFlux:
JooFlux a JVM agent that allows both the dynamic replacement of method implementations and the application of aspect advices. Compared to existing approaches, JooFlux takes a novel route by taking advantage of the new
invokedynamicinstruction added in Java SE 7. The runtime overhead of JooFlux is marginal for method invocations, and fairly limited when aspects are being injected. In any case, JooFlux shows interesting performance compared to related approaches such as AOP tools or dynamic languages that rely on dynamic dispatch. More interestingly, JooFlux does not involve reloading whole classes on either method replacement or advice injection, which keeps a large range of just-in-time compilation optimizations valid.
While further scientific publications are foreseen, we also released a research technical report called “JooFlux: Hijacking Java 7 InvokeDynamic To Support Live Code Modifications”. It is available on the HAL INRIA open archive, and hopefully soon on arXiv.
We encourage the wider researchers and practitioners community to report any issue with JooFlux, and contribute bug fixes and improvements.