Tutoriel Plugins Eclipse (partie 1)
© 2007, Frédéric Peschanski
Dans ce tutoriel de niveau débutant, nous réalisons une petite étude de cas de création de plugins
Eclipse. Nous allons créer en pas à pas deux plugins:
plugin timer : un plugin inspiré de l'outil Cron d'Unix, ici en version très simplifiée, et qui
permet d'enregistrer des tâches exécutées à intervalles réguliers. Ce plugin montre l'extension du
Workbench eclipse avec des Action Sets (menus) et illustre également la définition de points
d'extensions
plugin clock : exemple d'extension pour le timer. Montre également les bases de la création de
vues en JWT/JFace.
Dans un premier temps, on lancera Eclipse dans sa version 3.1 ou 3.2.
Partie I. Le Plugin timer
Le développement de plugins Eclipse est pris en charge dans l'environnement par l'environnement
de développement de plugins PDE (Plugin Development Environment) qui est fourni avec Eclipse
en standard. Ce dernier est basé sur la boîte à outils de développement Java JDT (Java
Development Toolkit). Les plugins Eclipse sont donc en général implémenté en Java. Ce tutoriel
suppose donc un niveau intermédiaire de programmation orientée-objet en Java, ainsi que des
connaissances minimales de l'environnement Eclipse du point de vue utilisateur/développeur Java.
1) Création du projet
Pour démarrer le développement d'un plugin, on passe par un assistant (Wizard) de création de
projet en choisissant le menu Fichier (File) et Nouveau Projet (New Project) puis en sélectionnant
le type de projet Projet de Plugin (Plug-in Project). Les étapes 1 et 2 sont représentées ci-dessous :
Etape 1 : Nouveau projet Etape 2 : Projet de Plugin
On doit ensuite choisir le nom du plugin TimerPlugin en séparant de préférence les répertoires src/
et bin/ et en sélectionnant un plugin Eclipse et non Equinoxe1 (cf. étape 3). A l'étape suivante, on
choisira l'identificateur (Plugin ID) du plugin upmc.cps.timer.TimerPlugin ainsi que son
numéro de version (1.0.0 par défaut) et son nom descriptif (Plugin Name) TimerPlugin Plug-in.
On générera un activateur donc le nom de classe sera upmc.cps.timer.Activator et ce plugin
contribuera à l'interface utilisateur d'Eclipse. En revanche, ce n'est pas une application final RCP2
(Rich Client Platform). Les entrées nécessaires sont figurée à l'étape 4 ci-dessous :
Etape 3 : Informations générales Etape 4 : Contenu du plugin
La page suivante (Next) de l'assistant propose, de façon optionnelle, de suivre des modèles de
Plugins (templates) qui permettent de générer un code d'exemple pour différents types de
contribution à l'environnement Eclipse (cf. étape 5). Ici, nous choisirons uniquement le modèle
Action set « Bonjour le monde » ("Hello world" Action set) qui génère le code minimal nécessaire
pour contribuer un menu global d'Eclipse3 (cf. étape 6).
1 Les plugin Equinoxe sont de bas niveaux et se placent au-dessus du framework OSGI et non d'Eclipse
2 Les plugins RCP sont des applications finales qui se placent au dessus-d'Eclipse mais sans les outils de
développement.
3 Il est déconseillé de contribuer directement un menu global à Eclipse, et nous ne le faisons ici que pour illustrer
l'extension de menus. En pratique, on préférera ajouter soit un menu contextuel soit, au pire, un sous-menu de menu
global.
Etape 5 : les modèles de plugin Etape 6 : le modèle "Hello World" Action Set
pour contribuer un menu
Finalement, on choisira les options du menu que nous souhaitons ajouter sur la page suivante de
l'assistant. On choisira le nom de paquetage Java (Java Package Name) upmc.cps.timer.actions
(cf. étape 7 mais le nom de paquetage Java doit être corrigé). On trouvera dans ce paquetage toutes
les classes générées par Eclipse pour réagir aux entrées du menu contribué. Le nom de classe
d'action (Action Class Name) est TimerAction et le message d'information sera Timer Activated.
Etape 7 : les options de l'action set
2) Découverte de l'architecture du Plugin
L'assistant se termine après l'étape 7 en cliquant sur Terminer (Finish). Dans ce tutoriel, on choisit
en fait de revenir en arrière et de n'utiliser aucun modèle. On se retrouve donc avec l'arborescence
décrite à l'étape 8 ci-dessous :
Etape 8 : l'arboresence générée pour le plugin TimerPlugin
Cette vue de l'explorateur de paquetage (Package explorer) est composée des éléments suivants:
Le répertoire racine du projet TimerPlugin/
Le répertoire des sources src/
dans le paquetage upmc.cps.timer, la classe d'activation OSGI Activator (cf. ci-dessous)
Les dépendances standards Java JRE (Java Runtime Environment)
Les dépendances de Plug-in
ici nous dépendons de tous les plugins de base d'Eclipse:
framework OSGI/Equinoxe: org.eclipse.osgi.* et org.eclipse.equinoxe.*
les plugins de base: org.eclipse.core.*
les plugins d'interface graphique: org.eclipse.swt.*, org.eclipse.jface.*,
org.eclipse.ui.*
Le fichier manifeste MANIFEST.MF (géré par l'assistant de plugin cf. ci-dessous)
Le fichier de configuration du plugin plugin.xml (ici non encore généré car nous n'effectuons
encore aucune contribution. Ce fichier est également géré par l'assistant de plugin)
Les propriétés de construction build.properties (géré par l'assistant de plugin)
En double-cliquant dans l'explorateur de paquetage sur le fichier manifeste, le fichier de
configuration ou les propriétés de construction, on obtient la vue de l'assistant de configuration de
plugin (cf. Etape 9)
Etape 9 : Vue de l'assistant PDE de configuration de Plugin (onglet aperçu Overview)
C'est dans cette interface de configuration que nous éditerons la configuration du plugin. L'édition
dans un éditeur de texte des fichiers de configuration du plugin est rarement nécessaire, mais la
synchronisation entre l'interface graphique et l'édition textuelle est en général bien gérée par
Eclipse.
Dans cette interface, on peut gérer:
les informations générales du plugin
l'environnement d'exécution (si besoin de spécifier une version spécifique de Java par exemple)
les dépendances (plugins requis)
l'environnement d'exécution (par exemple, pour utiliser des bibliothèques tierces)
les extensions et points d'extension pour contribuer à la plateforme Eclipse
le test du plugin: exécution et déboguage
l'export du plugin sous forme binaire
Parmi les fichiers les plus intéressants générés par le PDE, il y a par exemple le manifeste
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !