Elevator Pitch
From HotSwap to agent-based reloading. In this session, we are going to take a look at the options available for Java class reloading.
Description
In Java, a typical workflow involves restarting the application (almost) with every class change. For some applications it is not a problem at all, for some - it is a disaster.
From HotSwap to agent-based reloading. In this session, we are going to take a look at the options available for Java class reloading. There is plenty of tools that you can use for this task: rely on standard JVM HotSwap, redesign your application to rely on dynamic class loaders, to comprehend the Zen of OSGi, or to integrate a reloading agent. Every option has its own drawbacks and benefits and we’re going to take a deep dive on the subject.
Finally, there are also the conceptual challenges in reloading Java classes. What to do with the state? What should happen with the static initialisers? What if super class changes? Join this session to gain a better understanding of class reloading technologies and become more productive Java developer.
Notes
Part 1: What’s available in JVM for class reloading - HotSwap. How does it work? - DCEVM - Problems: why even a “full” HotSwap is not enough Part 2: Dynamic classloaders - Reloading Java classes with custom classloader - Making use of OSGi - Problems Part 3: Java agents - Java agent integration with HotSwap - Proxy-based approach to Java class reloading - Integration with the ecosystem. Part 4: conceptual challenges - Dealing with state: what to do with fields? - Static initializer dilemma, should it execute or not?