Zatímco "balíkové" aspekty plug-in mohou být zajímavé pro běhový modul plug-in a pro běhové nástroje, mnohem častěji se modul plug-in týká toho, jaké body rozšíření jsou definovány jednotlivými moduly plug-in a jakými rozšířeními tyto moduly přispívají. Tyto informace poskytuje registr rozšíření platformy, IExtensionRegistry.
Proč může modul plug-in zajímat, jaká rozšíření jsou přítomná? Na konkrétním příkladu si ukážeme potřebu těchto informací a protokol k jejich získání.
Připomeňme si dialogové okno pracovní plochy Zobrazit pohled, které obsahuje všechny dostupné pohledy, jež jsou v rámci platformy nainstalovány.
Víme, že názvy kategorií a názvy všech poskytovaných pohledů jsou uvedeny v souboru plugin.xml pro každý modul plug-in, který do pohledů přispívá nějakým rozšířením org.eclipse.ui.views. Jak ale pracovní prostor tyto informace zjistí? Z registru rozšíření platformy. Následující ukázka obsahuje zjednodušený úsek kódu v implementaci pracovní plochy dialogového okna Zobrazit pohled:
... 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]); // získat informace o každém rozšíření ...
Z výše uvedeného vidíme, že registr je možno získat ze třídy Platform. Protokol v registru IExtensionRegistry slouží k nalezení bodu rozšíření s názvem org.eclipse.ui.views. Informace v registru o konkrétních bodech rozšíření nebo rozšířeních lze nalézt za použití protokolu definovaného v IExtensionRegistry, IExtensionPoint, a IExtension. Dokumentace javadoc pro tyto třídy obsahuje podrobné informace o protokolu registru.
Jakmile je nalezena požadovaná definice rozšíření, je možno pomocí protokolu v IConfigurationElement zkoumat jednotlivé atributy rozšíření.