dimanche, janvier 13, 2008

Déployer une application SWT/JFace via Java Web Start

Depuis le début de ce blog, un ensemble de démonstrations ont été fournies et malheureusement pour les tester il fallait télécharger les sources et les compiler dans son environnement préféré.

De manière à tester directement les démonstrations, j'ai décidé de les déployer via Java Web Start (voir mon cours sur le sujet Java Web Start).

Je vous présente ci-dessous la démarche à suivre pour déployer une application "pure" SWT/JFace. A noter que le déploiement d'une application RCP (qui viendra lors de la diffusion du cours) est expliquer ici.

Démarche en plusieurs étapes (à automatiser via une tâche ANT) appliquée sur la démonstration "Astuce du Jour" en SWT. A noter également qu'une description plus complète via un tutoriel est proposée sur le site de Developpez.com (Comment déployer une application SWT via Java Web Start).

Exporter dans un JAR le projet à déployer
  • A partir d'Eclipse IDE, exporter le projet à déployer dans une archive JAR
  • Ne pas inclure les bibliothèques dépendantes
  • Définir la classe principale dans le fichier MANIFEST.MF (option Main-Class). Exemple, Main-Class: eclipse.swt.SWTTipOfTheDay.SWTTipOfTheDayTest
  • Définir le class path des bibliothèques utilisées (option Class-Path). Exemple, Class-Path: swt.jar, jface.jar
Signer tous les JAR
  • Signer le JAR généré (swttipofthedaydemo.jar)
  • Signer tous les autres JAR (swt.jar). Il se peut que certaines bibliothèques soient déjà signées. Pour éviter tous problèmes relatifs à des incohérences de signature (erreur de type : Les ressources JAR définies dans le fichier JNLP n'ont pas été signées à l'aide du même certificat), je n'ai pas trouver d'autres moyens que de supprimer les signatures déjà présentes. Dans le cas de la bibliothèque SWT, la suppression des fichiers avec l'extension SF et RSA du répertoire META-INF a été suffisant.
Décrire le fichier de déploiement JNLP
  • Décrire dans un fichier JNLP, le déploiement Java Web Start du projet
Déployer les fichiers sur un serveur WEB
  • Déposer le fichier JNLP, le JAR signé de la démo et toutes les bibliothèques JAR signées sur un serveur WEB.
Vous pouvez tester le résultat via la démo de SWTTipOfTheDay.