Exporter un générateur en tant que plugin

Résumé
Ce document explique comment exporter un module de génération en tant que Plug-in. Le module peut ensuite être déployé sur n'importe quelle instance d'Eclipse.
Il détaille les différentes phases nécessaires à cet export et présente aussi l'utilisation du Module Launcher qui permet à l'utilisateur final de mettre en place un projet de génération en quelques clics.


Cédric Brun, Obeo (France)

Configuration du module

Tous les projets de génération Acceleo sont également des projets de Plug-in Eclipse, ainsi ils disposent des fichiers de configuration standards pour un Plug-in : le fichier Manifest.mf dans le répertoire meta-inf et le fichier plugin.xml

Fichiers de configuration d'un Plug-in
Figure :Fichiers de configuration d'un Plug-in

Pour qu'un module Acceleo soit déployable en tant que plugin il faut qu'il étende le point d'extension fr.obeo.acceleo.gen.module.

Pour effectuer ceci éditez le fichier Manifest.mf, cliquez sur l'onglet Extensions puis sur Add....

Ajout du point d'extension
Figure :Ajout du point d'extension

Choisissez alors le point d'extension fr.obeo.acceleo.gen.module puis cliquez sur Finish.

Créez ensuite un sous-élément module.

Création d'un module
Figure :Création d'un module

Les paramètres du modules ne sont pertinents que dans le cadre d'une utilisation du Module Launcher (voir plus loin). Si vous ne souhaitez que pouvoir exporter le module il n'est pas nécessaire de configurer ces paramètres.

Paramétrage par défaut du module
Figure :Paramétrage par défaut du module
Fichiers exportés dans le build
Figure :Fichiers exportés dans le build
Les fichiers nécessaires au module de génération doivent tous êtres exportés, vérifiez dans l'onglet build qu'ils seront tous inclus dans le plugin (en particulier les fichier .mt et le fichier plugin.xml.

Export du module

L'export d'un module suit la même procédure que l'export d'un plugin Eclipse standard. Cliquez avec le bouton droit sur votre projet et choisissez Export... puis Deployable plug-ins and fragments.

Export en tant que plugin
Figure :Export en tant que plugin

Cliquez sur "Next"

Paramétrage de l'export
Figure :Paramétrage de l'export
Paramétrage de l'export
Figure :Paramétrage de l'export (suite)

Lors du clic sur Finish Eclipse compilera le plugin et créera un fichier Jar dans le répertoire de destination.

Plugin exporté
Figure :Plugin exporté

Ce plugin peut ensuite être installé dans n'importe quelle instance d'Eclipse en le copiant dans le répertoire plugins.

Paramétrage du module pour le Module Launcher

Moyennant un léger paramétrage supplémentaire il est possible de disposer de l'environnement d'initialisation des projets, le Module Launcher.

Pour que votre module soit proposé dans l'interface du Module Launcher il doit remplir certaines conditions:

  • Définir un fichier de lancement générique utilisant des paramètres.
  • Décrire ces paramètres via le point d'extension fr.obeo.acceleo.gen.module.

Créez donc dans un premier temps un fichier .chain lançant votre génération et placez-le dans un répertoire de votre générateur (ici nous avons choisi default).

Création d'un .chain générique
Figure :Création d'un .chain générique

Définissez ensuite les paramètres nécessaires à votre génération en éditant l'attribut Parameter Files de l'objet racine du .chain. Ici nous définissons trois paramètres, le modèle d'entrée, le répertoire de sortie et le fichier de log.

Paramètres du .chain
Figure :Paramètres du .chain

Il faut maintenant spécifier ces paramètres dans le point d'extension afin que le Module Launcher les demandes.

Éditez le fichier plugin.xml et allez dans l'onglet Extensions. Renseignez-y les valeurs nécessaires pour le Module, c'est à dire le titre, la description du module, le chemin vers le fichiers .chain générique et enfin la catégorie du module.

Paramétrage du module
Figure :Paramétrage du module

Il faut maintenant spécifier les paramètres du .chain. Pour ce faire cliquez-droit sur le Module dans l'éditeur d'extension et ajoutez le nombre de fils nécessaires pour les paramètres.

Paramètres dans le point d'extension
Figure :Paramètres dans le point d'extension

Définissez ainsi chaque paramètre de votre .chain, vous pouvez définir sa description, son type (fichier/répértoire ou projet), l'extension des fichiers et aussi définir un fichier par défaut

Paramètre : répertoire de sortie
Figure :Paramètre : répertoire de sortie
Paramètre : modèle d'entrée
Figure :Paramètre : modèle d'entrée
C'est bien l'ordre de déclaration qui garantit que les paramètres du fichier .chain vont être substitués avec les valeurs de l'utilisateur.

Et voilà ! votre générateur est désormais utilisable en quelques clics, vous pouvez l'exporter en tant que plugin et le tester dans une nouvelle instance d'Eclipse. N'oubliez pas de vérifier les paramètres d'export dans l'onglet build de l'éditeur, en particulier le fait que les fichiers servant à l'initialisation soient bien exportés.

Export des
          fichiers d'initialisation
Figure :Export des fichiers d'initialisation

Reportez-vous aux projets MindMap et Python2Ecore du dépôt de modules pour consulter un exemple fonctionnel.

Webdesign : www.katrinet.com - Réalisation : Obeo