-
L'architecture d'Eclipse est basée sur la notion de plugin.
-
Un plugin est un composant logiciel élémentaire
-
Les plugins sont gérés par un moteur (la Platform) qui les gère selon des règles d'optimisation.
Plugin
Le plugin est une entité logicielle normalisée qui respecte la norme OSGi. Il est défini par deux fichiers :
-
META-INF/MANIFEST.mf : fichier descriptif pour OSGi
-
plugin.xml (optionnel) : fichier descriptif pour les extensions Eclipse
Pour simplifier la construction, un fichier est géré par Eclipse :
-
build.properties : indique repertoire src, bin...
Un projet plugin est par défaut un projet java. Il contient donc automatiquement :
-
Un fichier .project
-
Un fichier .classpath
La vue logique (Package Explorer) représente le plugin selon son organisation :
La vue physique (Navigator) représente le plugin dans le système de fichier :
Le MANIFEST.mf contient les informations de base gérées par OSGi :
Le plugin.xml définit 2 notions supplémentaires : extensions et point d'extension :
-
Point d'extension : définit un modèle d'un concept que le plugin sait gérer (un menu, une vue, un driver...).
-
Extension : définit une instance du modèle décrit par le point d'extension (la vue Navigator, le driver Z, ...)
On utilise le wizard de création de plugin -> New... Plugin project
Feature
-
La feature est un ensemble de plugins
-
Elle possède également : une licence, et la propriété d'être installable via un update site.
-
Elle se créé dans un projet de nature 'feature', où l'on regroupe les plugins
-
La feature gère les compatiblités de version des plugins qu'elle contient ou dont elle dépend.
La feature est représentée dans une vue logique du package explorer
L'éditeur de feature permet d'indiquer :
les plugins contenus dans la feature
les données complémentaires : ID, description, texte de licence, etc...
Distribution de l'application
-
L'update site permet de publier des features
-
Il s'installe sur un disque local, distant ou sur un serveur web
-
L'url d'accès correspond à l'accès au fichier site.xml
-
Il se créé en utilisant un projet Eclipse de nature update Site
-
On y assemble les features que l'on veut publier (dans un Eclipse déjà installé)
Wizard de création dédié : New ... update Site project
Pour le livrer : Wizard d'export sur le file system
-
Un produit est un ensemble de features organisées sur une version RCP
-
Le produit se livre pour une plateforme donnée
-
Il se livre sous la forme d'un exécutable RCP (pas d'update site d'installation)
-
Il peut utiliser l'update site pour se mettre à jour (si cablé)
-
Il peut définir des informations de branding (icone de lancement, splash screen..)
-
Il se créé à l'aide de wizards dans eclipse (fichier .product)