Extension

Plugins können Extensions anbieten und dadurch andere Plugins auf wohldefinierte Weise erweitern. Dazu bietet ein Plugin eine Extension an, die an den Extension Point eines anderen Plugins andockt.

Extension definieren

Um die Definition einer Extension zu beschreiben, verwenden wir folgendes Szenario: Plugin A definiert einen Extension Point P1, den das Plugin B mit einer Extension E1 erweitert. (Damit eine Extension definiert werden kann, muss vorher ein Extension Point deklariert worden sein.) Wir arbeiten hier weiter mit dem Beispiel von der Seite Extension Point, in der im Plugin A ein Extension Point mit der ID chatters definiert wurde.

Die folgenden Schritte werden im Plugin-Manifest-Editor des Plugins B durchgeführt, für das die Extension E1 deklariert wird. Alternativ kann man auch direkt den XML-Quellcode bearbeiten. Die Verwendung des Plugin-Manifest-Editors hat jedoch den Vorteil, dass der Editor weitere Schritte verweigert, wenn ein Zwischenergebnis nicht korrekt ist und man so sich so einfach von einem korrekten Zwischenschritt zum nächsten hangeln kann.

Um die Extension E1 im Plugin B zu implementieren müssen folgende Schritte durchlaufen werden:

  1. Im Tab Dependencies eine Abhängigkeit zu Plugin A hinzufügen. (Siehe Hinweis unten.)
  2. Eine neue Klasse erstellen, die das Interface Chatter aus Projekt A implementiert.
  3. Im Tab Extensions eine neue Extension hinzufügen: Die ID des Extension Points steht dabei hinter der ID des Plugins, das den Extension Point deklariert. Im Beispiel wird die zusammengesetzte ID A.chatters verwendet.
  4. In der Extension für das chatter-Element das Attribut class auf den Namen der Klasse setzen, die vorher erstellt wurde, um das Interface Chatter zu implementieren. Am besten wird die Klasse mit dem Browse ...-Button ausgewählt, um sicherzustellen, dass sie korrekt referenziert wird.
Zuletzt geändert am 15. Juli 2010 um 13:49