Erweiterungspunkte und Registrierung

Während für ein Laufzeit-Plug-in und Laufzeit-Tools die "Paket"-Aspekte eines Plug-ins interessant sein mögen, ist es für ein Plug-in häufiger von Bedeutung, welche Erweiterungspunkte von anderen Plug-ins definiert worden sind und welche Erweiterungen sie ergänzen. Diese Information wird durch die Erweiterungs-Registrierungsdatenbank der Plattform, IExtensionRegistry, bereitgestellt.

Um zu untersuchen, warum die bestehenden Erweiterungen für ein Plug-in relevante sind, wird im Folgenden ein konkretes Beispiel untersucht, das nicht nur die Notwendigkeit dieser Information, sondern auch das hierfür verwendete Protokoll darstellt.

Der Workbench-Dialog Sicht anzeigen, der alle in der Plattform installierten und verfügbaren Sichten darstellt, ist bereits bekannt.

Dialog 'Sicht anzeigen' mit Eintrag 'Hello'

Ebenso ist bekannt, dass für Plug-ins, die die Erweiterung org.eclipse.ui.views ergänzen, die Kategorie- und Sichtnamen aller ergänzten Sichten in der Datei plugin.xml angegeben sind. Die Workbench ruft diese Informationen aus der Erweiterungs-Registrierungsdatenbank der Plattform ab. Der folgende Code ist ein vereinfachter Ausschnitt, der auf der Workbench-Implementierung des Dialogs Sicht anzeigen basiert:

	...
	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]);  //get the information about each extension
	...

Im voranstehenden Beispiel lässt sich ablesen, dass die Registrierungsdatenbank aus der Klasse Plattform abgerufen werden kann. Das Protokoll in IExtensionRegistry wird verwendet, um einen Erweiterungspunkt namens org.eclipse.ui.views zu finden. Informationen in der Registrierungsdatenbank über bestimmte Erweiterungspunkte kann über das in IExtensionRegistry, IExtensionPoint und IExtension definierte Protokoll gefunden werden. In den Javadoc-Dateien dieser Klassen finden Sie detaillierte Informationen über das Protokoll der Registrierungsdatenbank.

Nachdem die gesuchte Erweiterungsdefinition gefunden wurde, kann das Protokoll IConfigurationElement verwendet werden, um die einzelnen Attribute einer Erweiterung zu untersuchen.