Je déclare dans mon jnlp un seul jar contenant le main de l'application (main.jar). Lors de l'execution je récupère une liste de noms de jars (a.jar, b.jar...).
Ensuite, en utilisant DownloadService.loadResource(), je charge ces autres jars (depuis le même serveur). Tous les jar sont signés avec le même certificat!

Au premier lancement tous les jars sont bien mis en cache (main.jar, a.jar, b.jar...). Lors des lancements ultérieurs, JWS vérifie la version de main.jar (déclaré dans le JNLP) en testant la date du fichier sur le serveur (c'est l'algo défini dans les spécifications jnlp). Il re-télécharge main.jar seulement si la date sur le serveur est supérieure à la date du fichier dans le cache. Ce fonctionnement est parfait pour moi: je ne gère pas les versions explicitement, si je mets à jour les jars sur le serveur, les clients se mettront à jour automatiquement (en utillisant le champ "If-Modified-Since" de HTTP header et cela me convient très bien!).
Pour les jars qui ne sont pas définis dans le JNLP (a.jar, b.jar...), DownloadService.loadResource() ne teste pas la date sur le serveur. Du coup ces jars ne se mettent pas à jour automatiquement.

Est-t-il possible de dire au DownloadService de vérifier la date des ressources pour les comparer au cache et, le cas échéant les re-télécharger? Est-ce que cela ne devrait pas être considéré comme un bug?