Aunque que los aspectos relativos al "paquete compuesto" de un plug-in pueden ser de interés para las herramientas y el plug-in de entorno de ejecución, es mucho más común que un plug-in esté preocupado por los puntos de extensión definidos por los plug-ins y las extensiones añadidas por los mismos. Esta información se suministra en el registro de extensiones de la plataforma, IExtensionRegistry.
¿Por qué desearía un plug-in saber qué extensiones están presentes? Un ejemplo concreto nos ayudará a mostrar la necesidad de esta información y el protocolo necesario para obtenerla.
Vuelva a llamar al diálogo Mostrar vista del entorno de trabajo, que muestra todas las vistas disponibles que se han instalado en la plataforma.
Sabemos que todos los nombres de categoría y de vista de todas las vistas añadidas se especifican en el archivo plugin.xml de los plug-ins que añaden extensiones a org.eclipse.ui.views. Pero, ¿cómo averigua el entorno de trabajo esta información? A partir del registro de extensiones de la plataforma. El código que sigue es un fragmento simplificado de la implementación del diálogo Mostrar vista del entorno de trabajo:
... 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]); //obtener información acerca de cada extensión ...
Observamos en el ejemplo que el registro puede obtenerse de la clase Platform. El protocolo de IExtensionRegistry se utiliza para buscar el punto de extensión denominado org.eclipse.ui.views. La información del registro relativa a puntos de extensión o extensiones determinadas puede encontrarse mediante el protocolo definido en IExtensionRegistry, IExtensionPoint y IExtension. El javadoc de estas clases proporciona información detallada acerca del protocolo del registro.
Una vez encontrada la definición de extensión en cuestión, puede utilizarse el protocolo de IConfigurationElement para examinar los atributos individuales de una extensión.