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 ?

Était-ce utile?

La 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)

Autres conseils

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top