F IGURE 12.1
The JARDiff working mechanism.
After a JAR file is requested, specifying the already installed version, the JNLP server may
return a JARDiff file, and the JNLP client will take care to build the new file from assembling
the JARDiff with the installed old JAR file.
As of version 1.0 of the JNLP specification, JARDiff files are an optional feature. They
don't embody a conceptual characteristic in the protocol; rather they are just an
The granularity level (that is, the smallest piece that can be handled) of differencing with
JARDiff files is class-level for code, and generally of a file entry inside the JAR file. To see it
in a slightly different way, it's like we could be able to patch JAR files, and our patches could
be no littler than Java classes items (contained into JAR files).
Getting back to Part I of this topic, we saw that some Java deployment solutions allow for finer
granularity levels (for instance, DeployDirector permits byte-level differences. This is to say
that it allows patching single classes).