pallet / ritz

SWANK and nREPL servers for clojure providing JPDA based debuggers
318 stars 33 forks source link

Support reloading modified Java classes #86

Open mullr opened 11 years ago

mullr commented 11 years ago

When developing a mixed system, you currently have to restart the repl in order to load any changed Java classes. It would be really neat if they could be reloaded on demand. This is a good fit for ritz because it requires the the jvm to be running in debug mode already.

Some references: http://docs.oracle.com/javase/1.4.2/docs/guide/jpda/enhancements.html#hotswap http://docs.oracle.com/javase/1.4.2/docs/guide/jpda/jdwp/jdwp-protocol.html#JDWP_VirtualMachine_RedefineClasses

I'm pretty sure this has the restriction that class layout (private fields) may not be changed; even with that limitation, this would still be fantastically useful.

Perhaps jrebel could be supported as well, but it requires a commercial license.