JooFlux: Hijacking Java 7 InvokeDynamic To Support Live Code Modifications
Julien Ponge (CITI), Fr\'ed\'eric Le Mou\"el (CITI)

TL;DR
JooFlux is a JVM agent leveraging Java 7's invokedynamic to enable efficient live code modifications and aspect weaving with minimal performance overhead.
Contribution
It introduces a JVM agent that uses bytecode transformation and invokedynamic for dynamic code updates without a dedicated language.
Findings
JooFlux achieves performance close to standard Java execution.
It outperforms existing AOP and dynamic language platforms in efficiency.
Supports runtime method replacement and aspect advice application.
Abstract
Changing functional and non-functional software implementation at runtime is useful and even sometimes critical both in development and production environments. JooFlux is a JVM agent that allows both the dynamic replacement of method implementations and the application of aspect advices. It works by doing bytecode transformation to take advantage of the new invokedynamic instruction added in Java SE 7 to help implementing dynamic languages for the JVM. JooFlux can be managed using a JMX agent so as to operate dynamic modifications at runtime, without resorting to a dedicated domain-specific language. We compared JooFlux with existing AOP platforms and dynamic languages. Results demonstrate that JooFlux performances are close to the Java ones --- with most of the time a marginal overhead, and sometimes a gain --- where AOP platforms and dynamic languages present significant overheads.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Software System Performance and Reliability · Service-Oriented Architecture and Web Services
