Los puntos de extensión y el registro

Aunque que los aspectos relativos al "paquete compuesto" de un conector pueden ser de interés para las herramientas y el conector de entorno de ejecución, es mucho más común que un conector esté preocupado por los puntos de extensión definidos por los conectores 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 conector 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.

Diálogo Mostrar vista, con la entrada Hello

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 conectores 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.