SourceForge.net Logo
Disable Menu
Plugins und Eclipse

Definition PlugIn: Ein PlugIn ist ein Stück Funktionalität, die außerhalb des Laufzeitkerns realisiert ist.

Eclipse insgesamt ­ die Java-Entwicklungstools, der CVS-Repository Explorer, der Debugger, ... ­ ist als Erweiterung konzipiert.
Das heißt, keines dieser Tools ist in Eclipse integriert.
Es gibt kein monolithisches Tool, dem wenige Dinge hinzugefügt werden.
Eclipse besteht aus einem kleinen Kern, der durch viele Dinge erweitert wird.

     EclipsePluginModell

 

Die Java-Umgebung und die Eclipse-Basis bestehen zusammen aus mehr als 60 großen Plug-Ins.

Ein Eclipse PlugIn besteht aus:

  • JAR-Archiv mit den ausführbaren .class-Dateien
  • HTML-Help-Files
  • benötigte Ressourcen wie Bilder, Soundfiles, etc.
  • Quellcodedateien, um dem OpenSource-Gedanken gerecht zu werden

Beim Programmstart wird das PlugIn Verzeichnis von Eclipse nach vorhandenen PlugIns durchsucht. Diese werden  von Eclipse in die PlugIn-Registry eingetragen.
Eine Übersicht der registrierten PlugIns kann unter "Help - About Eclipse Platform - PlugIn Details" angezeigt werden:
  
PluginDetails

    
Jedes PlugIn benötigt eine gewisse Ladezeit. Eclipse Umgebungen können leicht mehrere tausend PlugIns beinhalten, beispielsweise besteht die IBM WebSphere Application Development-Umgebung aus gut 500 Plug-Ins, wenn jedes dieser Plug-Ins 1 Sekunden Ladezeit benötigt, würde ein Eclipsestart über acht Minuten dauern.

Dieses Problem führt zu der Lazy Loading-Regel:
"Erweiterungen werden nur geladen, wenn sie benötigt werden"

Eisbergmodell

Es sind vorher also nur ihre Funktionen und gegenseitigen Wechselwirkungen bekannt, die dem System über die sog. "Manifest-Datei" plugin.xml mitgeteilt werden.

Implementierung der Lazy Loading Regel

Wenn man weis, welche Erweiterungen vorhanden sind, selbst wenn man deren Implementierung nicht geladen hat, lässt sich dem Benutzer bereits eine Vorstellung vermitteln, auf welche Operationen er zugreifen kann.
Die PlugIn-Architektur implementiert die Teilung zwischen Deklaration und Implementierung durch die Deklaration einer Erweiterung in einem XML-basierten Manifest. Die Implementierung der Erweiterung erfolgt in Java.

Gemäß dieser Regel werden Erweiterungen erst beim ersten Aufruf geladen. Eclipse wartet, bis der Benutzer beispielsweise eine Schaltfläche anklickt, und sucht dann nach dem aufzurufenden Code. Der Code ist als Java-Klasse realisiert, sodass der Name der Klasse in der Definition der Aktion erscheinen muss.