Informations sur la structure et la mise à jour des extensions dans JMap

Cet article a pour but de résumer comment sont structurées la plupart des extensions client et serveur dans JMap.  La plupart des extensions de JMap sont installées automatiquement à l'aide d'installeurs et ne requièrent aucune connaissance particulière, mais certaines extensions sont installées et configurées manuellement.

Lors de l'installation ou la mise à jour d'une extension à partir d'un installeur, les extensions client et serveur sont mises à jour automatiquement, mais les applications déployées qui utilisent l'extension client ne sont pas mises à jour automatiquement.  Pour que l'extension soit mise à jour dans les applications l'administrateur JMap doit se connecter à JMap Admin et mettre à jour manuellement chaque application déployée qui utilise l'extension.

Structure des extensions client et serveur

Les extensions serveur sont installées dans le répertoire jmap/extensions. La plupart contiennent un jar serveur et possiblement un répertoire contenant la configuration de l'extension ainsi que d'autres fichiers. Le fichier de configuration peut être de format properties, .xml, etc. Les extensions serveur contiennent souvent une page de configuration située dans jmap\jmapadmin\extensions\[extension] accessible à partir de la section Extensions de JMap Admin. Cette page offre une interface graphique pour configurer  l'extension.

Les extensions client de type Pro se situent dans le répertoire jmap\classes\extensions\client et les extensions de type Web le font dans le répertoire jmap\extensions\web. Les extensions doivent suivre plusieurs règles relatives au nom de fichiers et de répertoire. Par exemple : le nom du répertoire doit finir par _client; le nom du fichier .jar doit être le même que le nom du répertoire; etc. Pour les extensions client JMap Pro, un fichier .jnlp est probablement présent et requis pour le lancement de l'application Pro.

Mise à jour manuelle des extensions

Si l'extension ne possède pas d'installeur, vous devez copier manuellement les fichiers dans le répertoire d'installation de JMap.  Un fichier .jar est probablement fourni et en général vous devez remplacer les jars existants et redéployer les applications pour mettre à jour l'extension.  Les répertoires où se trouvent les fichiers à copier ou mettre à jour sont :

Extension serveur :
jmap/extensions/[nom_extension].jar
jmap/jmapadmin/extensions

Extension client Pro :
jmap/extensions/client/[nom_extension]_client/

Extension client Web :
jmap/extensions/[nom_extension]/

Par la suite, vous devez mettre à jour les applications déployées, soit à partir de JMap Admin ou en copiant manuellement les fichiers. Pour mettre à jour manuellement une application JMap Pro, le répertoire serait: jmap\applications\deployed\[application]\[extension_client]_client\, donc par exemple jmap\applications\deployed\montreal\taxation_client\.  À noter que certains fichiers (ex; .jnlp) sont modifiés par JMap lors de la mise à jour des applications déployées, donc il est préférable de faire la mise à jour depuis JMap Admin.

Certaines extensions client peuvent contenir une configuration client.  Dans ce cas, le fichier est probablement dans le répertoire jmap/extensions/client/[nom_extension]_client/ et est copié automatiquement dans le répertoire du déploiement lors de la création ou de la mise à jour d'une application déployée.  Donc après tout modification ou ajout de fichier à ce répertoire, pour que le changement soit répliqué dans les applications déployées, il est nécessaire de faire une mise à jour sur chaque application pour que la dernière version de ces fichiers soient copiés dans chaque déploiement.

Il est aussi possible de modifier les fichiers directement dans une application déployée.  À noter que dans ce cas, si le fichier source n'était pas aussi mis à jour, la mise à jour de l'application déployée remplacera les fichiers du déploiement par ceux de jmap/extensions/client/[nom_extension]_client/ et tout changement sera perdu.   Il en est de même pour les extensions web.