Zugriffsregeln

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:

  1. Zugänglich
  2. Nicht zulässig
  3. Intern
  4. Intern mit Freunden

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

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.

Zugängliche Pakete

 

Verbotene Pakete

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:

  1. Der Compiler markiert Verweise auf verbotene Pakete mit einem Fehler.
  2. Typen aus verbotenen Paketen sind als Vorschläge in der Unterstützung für Inhalt NICHT verfügbar.

Hinweise:

  1. Von den Plug-ins im Eclipse-SDK werden alle Ihre Pakete im Abschnitt Exportierte Pakete aufgelistet. Daher hat keines der Pakete im SDK einen verbotenen Zugriff.
  2. Die Prioritätsstufe für verbotene Verweise wird auf der Benutzervorgabenseite Benutzervorgabenseite Fehlerbewertung öffnen Java > Compiler > Fehler/Warnungen > Veraltete und eingeschränkte API eingestellt.

    Es wird dringend empfohlen, den Schweregrad eines verbotenen Verweises als Fehler zu speichern.

Benutzervorgaben für verbotenen Zugriff

Interne Pakete

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.

Nicht empfohlener Zugriff

Es werden zwei Maßnahmen getroffen, um von nachgeordneten Plug-ins aus verweisenden internen Paketen abzuraten:

Nicht empfohlener Zugriff

Nicht empfohlene Inhaltshilfe

Die Prioritätsstufe für nicht empfohlene Verweise kann auf der Benutzervorgabenseite Benutzervorgabenseite Fehlerbewertung öffnen Java > Compiler > Fehler/Warnungen > Veraltete und eingeschränkte API festgelegt werden.

Nicht empfohlene Benutzervorgaben

Interne Pakete mit Freunden

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.

Freunde

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.

Zugriffseinschränkungen aktivieren

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:

  1. Öffnen Sie die Datei plugin.xml im Editor für Plug-in-Manifeste.
  2. Klicken Sie in dem Abschnitt Plug-in-Inhalt der Seite Übersicht auf den Link 'OSGi-Produktpaketmanifest' erstellen.

In 'manifest.mf' konvertieren

Untersuchen der Zugriffsregeln

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.

Eigenschaften für Java-Buildpfad

Zugehörige Referenzinformationen

Plug-in-Editor
Seite 'Übersicht'
Seite 'Abhängigkeiten'
Seite 'Laufzeit'
Seite 'Erweiterungen'
Seite 'Erweiterungspunkte'
Seite 'Build'