Alors que les aspects "regroupement" d'un plug-in peuvent être intéressants pour le plug-in d'exécution et les outils d'exécution, il est plus courant qu'un plug-in indique les points d'extension définis par les plug-ins et les extensions fournies par les plug-ins. Ces informations sont fournies par le registre d'extension de la plate-forme, IExtensionRegistry.
Pourquoi un plug-in a-t-il besoin de connaître les extensions présentes ? Un exemple concret vous permettra de découvrir la nécessité de ces informations et du protocole qui obtient ces informations.
Souvenez-vous de la boîte de dialogue Afficher la vue qui affiche toutes les vues disponibles installées sur la plate-forme.
Vous savez que les noms de catégorie et de vue de toutes les vues fournies sont spécifiés dans le fichier plugin.xml pour les plug-ins qui fournissent une extension pour org.eclipse.ui.views. Mais comment le plan de travail trouve-t-il ces informations ? Il les trouve dans le registre d'extension. Le code ci-dessous est un fragment de code simplifié basé sur l'implémentation du plan de travail de la boîte de dialogue Afficher la vue :
... IExtensionRegistry registry = Platform.getExtensionRegistry(); IExtensionPoint point = registry.getExtensionPoint("org.eclipse.ui.views"); if (point == null) return; IExtension[] extensions = point.getExtensions(); for (int i = 0; i < extensions.length; i++) readExtension(extensions[i]); // pour obtenir les informations relatives à chaque extension ...
Vous avez découvert ci-dessus que le registre peut être obtenu à partir de la classe Platform. Le protocole dans IExtensionRegistry permet de rechercher le point d'extension appelé org.eclipse.ui.views. Les informations du registre relatives à des points d'extension déterminés ou à des extensions déterminées peuvent être obtenues à l'aide du protocole défini dans IExtensionRegistry, IExtensionPoint, et IExtension. La documentation Java de ces classes fournit des informations détaillées sur le protocole du registre.
Une fois que la définition d'intérêt de l'extension a été détectée, le protocole dans IConfigurationElement peut être utilisé pour examiner les attributs individuels d'une extension.