Prérequis Techniques

Avant de suivre les exercices et l'atelier pratique, il est recommandé de disposer des compétences et usages suivants pour tirer pleinement parti du contenu :

  • Bases de Java : syntaxe, compilation et packaging d'artefacts Java.
  • Programmation orientée objet : classes, interfaces, héritage et gestion des exceptions.
  • Utilisation standard d'Eclipse : création de projets, perspectives, workspace et navigation dans l'IDE.

Objectifs

  • Généralités sur Eclipse : bases de l'environnement de développement.
  • Architecture d'Eclipse et de ses plugins : structure modulaire et gestion des dépendances.
  • Anatomie d'un plugin Eclipse : composants principaux et leur rôle (plugin.xml, build.properties, activator, manifest).
  • Création d'un projet concret : projet pas à pas utilisant des points d'extension — exercices corrigés et code source pour reproduire les examples.
  • Déploiement et packaging : méthodes modernes de packaging et déploiement RCP.
  • Bonnes pratiques : tests, versioning et maintien d'une plateforme cible stable.

Architecture Modulaire et OSGi

L'architecture d'Eclipse s'appuie sur le framework OSGi pour la gestion des bundles et des dépendances entre modules, permettant de charger, mettre à jour et isoler des composants sans redémarrer l'IDE. Le MANIFEST.MF déclare les dépendances et l'activation des bundles, tandis que les extension points et extensions offrent un mécanisme déclaratif pour étendre la plateforme. Le terme architecture incrémentale décrit la capacité à livrer des fonctionnalités par petits incréments et à mettre à jour des bundles indépendamment.

Des bundles peuvent être installés, arrêtés ou mis à jour indépendamment, réduisant l'impact sur le reste de la plateforme. Cette capacité favorise des cycles de livraison plus fréquents, une meilleure isolation des responsabilités et une maintenance progressive des fonctionnalités, utile pour des équipes publiant des outils internes ou des composants tiers.

Outils nécessaires pour créer votre premier plugin

Un environnement configuré améliore l'efficacité lors des exercices pratiques et des TP :

  • Eclipse IDE for Enterprise Java and Web Developers : distribution recommandée pour les projets JEE et les outils liés.
  • JDK compatible : nécessaire pour la compilation et l'exécution des bundles.
  • PDE (Plugin Development Environment) : création et test de plugins depuis l'IDE.
  • Outils de build (Maven / Tycho) : automatisation du packaging et des builds pour la distribution.
  • SWT / JFace : bibliothèques pour l'interface graphique des plugins.

Installation PDE

  1. Téléchargez l'installateur depuis télécharger Eclipse IDE.
  2. Lancez l'Installer et choisissez la distribution Eclipse IDE for Enterprise Java and Web Developers.
  3. Sélectionnez le JDK à utiliser et configurez le workspace lors du premier lancement.
  4. Si PDE n'est pas présent, installez-le via le Eclipse Marketplace (Help → Eclipse Marketplace → rechercher "PDE") ou via Help → Install New Software en ajoutant le p2 repo correspondant.
  5. Vérifiez l'installation en ouvrant la perspective PDE et en créant un nouveau projet de plugin pour tester le cycle build/debug.

Atelier pratique : Création de votre premier plugin

Ce TP guidé conduit du concept au package distribuable. L'atelier présente un projet concret permettant d'appliquer les notions vues dans les sections précédentes et d'acquérir des réflexes opérationnels pour le développement d'extensions Eclipse.

  1. Initialiser le projet plugin : créez un nouveau Plugin Project via PDE, définissez l'ID, la version et la Target Platform. Utilisez les Wizards (assistants) de création fournis par le PDE pour générer le squelette du projet et le code boilerplate.
  2. Déclarer les métadonnées : rédigez le plugin.xml et complétez le MANIFEST.MF pour exposer les extensions et dépendances.
  3. Implémenter l'Activator et la logique métier : fournissez la classe d'activation, services OSGi si nécessaire, et des tests unitaires de base.
  4. Ajouter une UI avec JFace/SWT : créez une vue ou un wizard, gérez les pages de formulaire et les listeners, en suivant les exemples commentés fournis dans le PDF.
  5. Tester en runtime : lancez une instance Runtime Workbench pour valider l'intégration, le comportement UI et les contributions aux extension points.
  6. Automatiser le build et packager : configurez Tycho pour produire des artefacts reproductibles et un Update Site P2.
  7. Publier et valider : constituez un feature, générez le site P2, et préparez les artefacts pour distribution interne ou publication.

L'atelier inclut des exercices notés et corrigés, ainsi que le code source complet pour reproduire les étapes sur votre poste.

Gestion du Cycle de Vie avec OSGi et P2

La gestion du cycle de vie combine les mécanismes OSGi (activation, arrêt, mises à jour rapides) et les outils de distribution P2. OSGi gouverne l'activation des bundles et la résolution des dépendances au runtime ; P2 fournit l'infrastructure pour publier, distribuer et mettre à jour des bundles sur des clients distants.

Pour une distribution pérenne : définissez une Target Platform cohérente, empaquetez vos fonctionnalités en features, générez un Update Site P2 et testez les mises à jour incrémentales. La soumission au Eclipse Marketplace consiste à préparer une page descriptive, fournir les liens vers un Update Site P2 et respecter les métadonnées p2 ; cela facilite la découverte et l'installation par les utilisateurs finaux.

Différences entre Installation par Dropins et P2

L'installation via dropins consiste à déposer des bundles dans un dossier de l'installation ; méthode simple mais limitée pour la gestion des dépendances et des mises à jour. Le mécanisme P2 (Update Site) est recommandé pour gérer les versions et les dépendances de manière centralisée. Pour la distribution grand public, l'Eclipse Marketplace constitue une alternative conviviale au P2 : il facilite la découverte, la visibilité et l'installation par les utilisateurs finaux.

Déploiement, Packaging (Tycho) et Mise à jour

Le packaging et la distribution d'un plugin impliquent la création d'un bundle OSGi, la définition d'une Target Platform et l'utilisation d'outils de build adaptés. Tycho (extension Maven) est abordé pour produire des artefacts reproductibles destinés à des Update Sites P2 or à des distributions RCP.

La mise à jour s'appuie généralement sur des repositories P2 permettant des mises à jour incrémentales côté client. La notion de Target Platform et la gestion des bundles OSGi sont expliquées pour sécuriser les déploiements sur différentes installations.

Pourquoi utiliser l'architecture incrémentale d'Eclipse ?

L'architecture incrémentale permet de livrer des améliorations et corrections sous forme de petits bundles indépendants, réduisant les risques liés à chaque livraison. Pour des équipes distribuées, elle facilite l'intégration continue et des mises à jour ciblées sans interruption de service. En pratique, elle améliore la résilience du parc d'installations et simplifie les retours en arrière grâce à une granularité fine des composants.

Utilisation des Wizards PDE pour accélérer le développement

Les Wizards du PDE automatisent la génération du code boilerplate et des fichiers de métadonnées (manifest, plugin.xml, build.properties), réduisant le risque d'erreurs de configuration. Ils proposent des options guidées pour créer des vues, wizards ou handlers, et intègrent les configurations de Target Platform et de dépendances OSGi. Pour un débutant, lancer un Wizard est souvent la façon la plus rapide d'obtenir un projet fonctionnel à partir duquel personnaliser la logique métier.

Foire Aux Questions (FAQ)

Qu'est-ce qu'un plugin Eclipse ?

Un plugin est une extension ajoutant des fonctionnalités à l'IDE en déclarant des extension points et des extensions, en fournissant des composants UI (SWT/JFace) et en s'appuyant sur la plateforme OSGi pour la modularité et la résolution des dépendances.

Comment tester un plugin en cours de développement ?

Testez un plugin en lançant une instance "Runtime Workbench" depuis le PDE : elle ouvre une seconde instance d'Eclipse chargée avec votre plugin actif, permettant d'exécuter, déboguer et valider les interactions avec l'IDE sans affecter l'installation principale. Le PDF détaille la configuration des launch configurations PDE, l'utilisation du débogueur distant et des perspectives pour observer les extension points et les contributions UI en temps réel.