This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I didn't go through your code, but "hot loading" (definition assumed) is really quite easy. The main point is that you must load classes with a new class loader each time you use the, since classes cannot be unloaded from class loaders, and so they cannot be redefined within the same class loader.
Anyone know if you must write a custom class loader to do this? I dug through JUnit to find the one it uses and it is pretty simple, but I didn't try to figure out why they needed a custom one at all.
What's a common way to make a whole application start using a new class loader? If you're doing plain old "new Object()" all over the place you'll just keep using the loader that loaded the class you're in, right? Do you need a global loader or a factory that knows when laoders change?
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi