Posted by kennardconsulting
on March 12, 2006 at 4:28 PM PST
As a developer, I try to work in both the Java and .NET environments. One of the (few!) things that .NET outshines Java in is what they call 'shadowed assemblies'.
Basically, the .NET runtime takes a 'shadowed' copy of every assembly (their JARs) so that the original copy is never locked by the file system. If the original copy is updated, some tricky reference counting in the VM gradually transitions all old clients away from the 'shadowed' copy and to the new copy.
This makes hot deployment to a running server trivial and much, much quicker than stopping/starting the whole webapp.
I'm not sure such a thing could/should be implemented in Java at the JVM level, but perhaps it could be at the appserver level? Could GlassFish make deploying JARs as simple as copying them into the right folder?