Question

Restarting your (server) during development can consume significant amount of time. The people of zeroturnaround realized this and created jrebel which has a pretty impressing list of features:

http://zeroturnaround.com/jrebel/features/

Hotswap on sun jvm has a long history:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4910812

So seems all thats supported by jvm hotswap today is "Changes to method bodies".

Is this the only hotswap feature all jvms have in common, or do jvms differ in hotswapping features ?

Was it helpful?

Solution

The major JVMs differ in term of what they allow to hotswap for live code. e.g. during debugging and byte code Instrumentation of loaded classes. AFAIK, most application servers actually unload the classloader and reload all the code which is a coarser hot swap and works the same on all the major JVMs.

Personally, I would try to ensure you can test most of your code in unit tests which take little time and can restart your service under development in a matter of seconds. (This avoiding the issue)

OTHER TIPS

You can use the TCK (Technology Compatibility Kit) for Java to determine what the contract is that JVMs have to meet in order to be certified as Java compatible.

http://jcp.org/en/resources/tdk

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top