Développer un module JTheque¶
Au sens JTheque, un module est une simple classe annotée avec @Module. Chaque module se trouve dans un Jar spécifique. Ensuite de quoi, il faut les déclarer dans le contexte Spring et déclarer ce dernier dans le manifeste du Jar du module.
Voici les informations nécessaires à l'annotation @Module :
- id : L'identifiant unique du module
- i18n : L'URL (au sens Spring) vers le fichier d'internationalisation i18n
- version : Le numéro de version du module
- core : La version du core nécessaire au fonctionnement du module
- jarFile : Le nom fichier jar du module
Et voici les informations optionnelles qui sont disponibles :
- url : L'URL vers le site du module
- updateUrl : L'URL vers le fichier de mise à jour du module
- data : La date de mise à jour du module
- messageFileURL : L'URL vers le fichier de messages du module
- dependencies : Les dépendances pour d'autres modules
Il n'est pas nécessaire de connaître Spring pour utiliser JTheque. Si vous ne comptez pas utiliser Spring dans votre application, il suffit juste de déclarer le module dans le contexte minimal de Spring et de développer ensuite le reste de votre application sans tenir compte du module. Il faut néanmoins savoir que le module sera instancié par Spring.
Le cycle de vie d'un module passe par trois états :
- pre-plug : Il s'agit de pré-configuration.
- plug : Il s'agit de l'ajout proprement dit du module dans l'applicaiton, c'est à dire modification de la vue, ajouts d'élément de configuration ...
- unplug : Il s'agit de l'extinction du module.
Pour effectuer des opérations dans ces 3 phases, il faut utiliser des annotations sur des méthodes de votre choix, respectivement @PrePlug, @Plug et @Unplug. C'est l'application qui se chargera de détecter ces méthodes et de les invoquer.
Vous pouvez choisir d'implémenter les phases que vous désirez en fonction des besoins de votre module.
Il faut ensuite déclarer les informations sur le module dans les fichiers d'internationalisation.
Un fichier d'internationalisation est un simple fichier .properties qui contient une liste de couples clé/valeur. Un fichier d'internationalisation représente une langue. On utilise un ensemble de ces fichiers pour internationaliser l'application. Ils doivent porter le même nom de base et se terminer par _langue ou langue est la forme abregée de la langue concernée (de, fr, en, it, ...).
Les clés qui vont y être cherchées dépendent de l'identifiant (id) du module Voici les clés qui sont nécessaires :
id.name=Nom du module
id.author=Auteur du module
id.description=Description du module
L'application va automatiquement rechercher et résoudre ces messges pour internationaliser le module.
Pour ajouter des fonctionnalités à l'application, il faut passer par les différents Managers que le Core fournit.