Environnements de développement UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/edi/ Extension de la plate-forme Eclipse
Résumé 1 Rappels de la plate-forme Eclipse 2 3 4
Plate-forme Eclipse Eclipse = plate-forme + contributions (plug-ins) plate-forme un exécutif (run-time) indépendant du SE (JVM) un ensemble basique de plug-ins extensibles mécanismes (API), règles et outils pour construire de plug-in un moteur pour découvrir, charger et exécuter des plug-ins contribution (plug-in) remplit une tache (pas forcement exécutable) se connecte à (implémente) un ou plusieurs points d extension offre des points d extension coexiste avec d autres plug-ins instance (feature) = ensemble de plug-ins qui coopèrent
Architecture de la plateforme Eclipse
Discipline de contribution E. Gamma & K. Berk : Eclipse Principes, patterns et plug-in 1 Tout est contribution. 2 Une contribution n est chargée en mémoire qu au moment où elle devient nécessaire. 3 On ajoute mais on ne remplace pas. 4 Les contribution doivent respecter les interfaces. 5 Commencer toujours par récupérer la structure d une contribution similaire. 6 Ne contribuez que lorsque vous avez a apporter quelque chose d utile au niveau fonctionnel. 7 A chaque fois que possible, laisser aux autre la possibilité de contribuer à votre contribution. 8 En tant que fournisseur d un point d extension, votre contribution doit se protéger des comportements erratiques des extensions.
Constituants de contribution Interfaces configurables (extension points) : nom, type, paramètres [Search > Plug-in Search > Extension Points] connectable :...Declarations, All implémentées :...References, All Sources internes : src/, doc/ code Java, archives Jar ressources non-exécutables Sources/exécutables externes : JRE, Plug-in Dependencies librairies externes plate-forme d exécution Description : plugin.xml, META-INF d identification : nom, version, fournisseur d interfaces (implémentées et introduites) d organisation interne
Constituants de contribution Interfaces configurables (extension points) : nom, type, paramètres [Search > Plug-in Search > Extension Points] connectable :...Declarations, All implémentées :...References, All Sources internes : src/, doc/ code Java, archives Jar ressources non-exécutables Sources/exécutables externes : JRE, Plug-in Dependencies librairies externes plate-forme d exécution Description : plugin.xml, META-INF d identification : nom, version, fournisseur d interfaces (implémentées et introduites) d organisation interne
Environnement de développement de contributions (Plug-in Developement Environment) Permet de construire des plug-in en utilisant les points d extension disponibles. Choix du projet de plug-in à développer : Projet de plug-in : standard. Projet de fragment : ajout à un plug-in. Projet de d instance (feature) : conteneur de un ou plusieurs plug-in Projet de mise à jour de site : publication des instances. Ressources : fichiers, répertoires, projets, etc. Assistant de plug-in : modèles de plug-in classiques. Editeurs et formulaires spécialisés pour l écriture des fichiers des plug-in (XML, Ant, Properties, META-INF). Perspective spécialisée. Plan de travail d exécution : outil de test de plug-in
Que dit la pratique? L expérience montre que : Le développement par exemple (règle 5) est majoritaire. L extension des niveaux bas de la plate-forme demandent plus d attention. Le plus d extensions sont au niveau UI (org.eclipse.ui). Le JDT est indispensable. Il faut connaître XML, Ant, Properties.
XML (extensible Markup Language) Langage textuel pour la spécification de données structurées. Constituants : Syntaxiques : balises (markup) bien parenthésées et texte (semi-)libre. Sémantiques : ELEMENT (nom de balise), ATTRLIST (propriétés de la balise), type (structure de la balise). La sémantique est décrite dans un fichier DTD, donc autant de sématiques que de DTD. Les fichiers DTD sont des grammaires hors contexte.
Exemple d utilisation en Eclipse Le fichier plugin.xml décrit l interface de la contribution. Son type plugin.dtd. Chaque point d extension a son propre schéma, à consulter dans la page Extensions > Open extension point description. Quand on déclare un point d extension, il faut préciser un schéma (DTD) pour son utilisation. Les CDATA correspondant aux noms de contributions on une syntaxe spéciale, hiérarchique.
Pour UI d Eclipse : 1 Contribution d une action. Ex. : Salut ou Hello, World 2 Contribution d un éditeur multi-pages. Ex. : Editeur de texte avec tri. 3 Contribution à un menu contextuel. 4 Contribution d une vue. 5 Contribution d un éditeur spécialisé. Ex. : Editeur d expressions régulières.