Die Laufzeit von Eclipse 3.1 gibt dem Plug-in-Entwickler die Möglichkeit, die Sichtbarkeit des Plug-in-Codes gegenüber den nachgeordneten Plug-ins für jeweils ein Paket zu steuern.
Ein Paket kann wie folgt klassifiziert sein:
PDE übersetzt diese Laufzeit-Sichtbarkeitsregeln in Compiler-Zugriffsbeschränkungsregeln zum Zeitpunkt der Kompilierung. Demzufolge wird eine Verletzung der Sichtbarkeitsregel von einem Compiler als Warnung oder Fehler markiert - je nach dem Schweregrad der Verletzung.
Dank dieser Art von Unterstützung zum Zeitpunkt der Kompilierung, wird man niemals von Fehlern beim Laden der Klassen zur Laufzeit überrascht und ist sich der Verweise auf die internen Typen bewusst.
Zugängliche Pakete sind für nachgeordnete Plug-ins bedingungslos sichtbar. Während API-Pakete klar in diese Kategorie fallen müssen, unterliegt es vollkommen dem Entwickler, zu entscheiden, welche anderen, von dem Plug-in exportierten Pakete diese Sichtbarkeitsstufe bekommen sollten.
Um ein Paket als zugänglich zu deklarieren, müssen Sie es im Abschnitt Exportierte Pakete der Seite Laufzeit des Editors für Plug-in-Manifeste auflisten und die Standard-Sichtbarkeitseinstellung unverändert lassen.
Sie können ein Paket aus nachgeordneten Plug-ins jederzeit ausblenden, indem Sie es aus der Liste im Abschnitt Exportierte Pakete auf der Seite Laufzeit des Editors für Plug-in-Manifeste ausschließen.
Verweise auf Typen aus einem verbotenen Paket führen zu Fehlern beim Laden von Klassen zur Laufzeit.
Gehen Sie wie folgt vor, um solche unerwünschten Situationen zu vermeiden:
Hinweise:
Es wird dringend empfohlen, den Schweregrad eines verbotenen Verweises als Fehler zu speichern.
Interne Pakete sind Pakete, die nicht für den Einsatz durch nachgeordnete Plug-ins bestimmt sind. Diese Pakete sind für nachgeordnete Plug-ins durch den Befehl Standardsichtbar.
Interne Pakete werden von nachgeordneten Plug-ins nur ausgeblendet, wenn Eclipse im Modus strict gestartet wird (z. B. wenn Sie mit dem VM-Argument -Dosgi.resolverMode=strict starten).
Interne Pakete müssen in dem Abschnitt Exportierte Pakete auf der Seite Laufzeit des Editors für Plug-in-Manifeste mit ausgewählter Option Verdeckt aufgelistet werden.
Es werden zwei Maßnahmen getroffen, um von nachgeordneten Plug-ins aus verweisenden internen Paketen abzuraten:
Die Prioritätsstufe für nicht empfohlene Verweise kann auf der Benutzervorgabenseite
Java > Compiler > Fehler/Warnungen >
Veraltete und eingeschränkte API festgelegt werden.
Für ein Plug-in ist es wichtig, den vollständigen Zugriff auf seine internen Pakete für designierte "Freund-Plug-ins" erteilen zu können. Beispielsweise ist der PDE-Code auf mehrere Plug-ins aufgeteilt und das Plug-in org.eclipse.pde.ui sollte vollständigen Zugriff auf die internen Pakete des Plug-ins org.eclipse.pde.core haben.
Im nachstehenden Beispiel hat das Freund-Plug-in org.eclipse.pde.ui vollen Zugriff auf das Paket org.eclipse.pde.internal.core.bundle des Plug-ins org.eclipse.pde.core.
Die Freunde können frei auf jeden beliebigen Typ des Paketes org.eclipse.pde.internal.core.bundle mit Genehmigung des Compilers verweisen.
Wenn andererseits ein beliebiges anderes Plug-in auf einen Typen des Pakets org.eclipse.pde.internal.core.bundle verweist, markiert der Compiler den Verweis als einen nicht zu empfehlenden Verweis, wie im vorherigen Abschnitt beschrieben.
Um die Unterstützung der PDE-Zugriffseinschränkung auszuschöpfen, ist die einzige Anforderung, dass das entsprechende Plug-in ein OSGi-Produktpaket MANIFEST.MF enthält. Die PDE kümmert sich um den Rest einschließlich der Verwaltung des Plug-in-Klassenpfads.
Wenn das Plug-in keine Datei MANIFEST.MF enthält, kann diese Datei folgendermaßen erstellt werden:
Sie können die Regeln der Zugriffseinschränkung untersuchen, die auf jeden Klassenpfadeintrag durch PDE auf der Eigenschaftsseite Java-Buildpfad Ihres Plug-in-Projektes erhoben werden.
Plug-in-Editor
Seite 'Übersicht'
Seite 'Abhängigkeiten'
Seite 'Laufzeit'
Seite 'Erweiterungen'
Seite 'Erweiterungspunkte'
Seite 'Build'