Toegangsregels

Eclipse 3.1 biedt pluginontwikkelaars de mogelijkheid om de zichtbaarheid van de plugincode voor stroomafwaartse plugins per pakket in te stellen.

Een pakket kan worden ingesteld op een van de volgende zichtbaarheidsopties:

  1. Toegankelijk
  2. Verboden
  3. Intern
  4. Intern met vrienden

PDE vertaalt deze runtimezichtbaarheidsregels bij het compileren naar toegangsbeperkingen voor de compiler. Als gevolg hiervan wordt een schending van een zichtbaarheidsregel door de compiler gemarkeerd als waarschuwing of fout- afhankelijk van de ernst van de schending.

Dankzij deze vorm van ondersteuning bij het compileren wordt u nooit verrast door klassenlaadfouten en bent u zich altijd bewust van verwijzingen naar interne typen.

 

Toegankelijke pakketten

Toegankelijke pakketten zijn altijd zichtbaar voor stroomafwaartse plugins.   Hoewel API-pakketten logischerwijze in deze categorie moeten vallen, is het volledig aan de ontwikkelaar om te beslissen welke andere exportpakketten van de plugin dit zichtbaarheidsniveau krijgen.

Om een pakket als toegankelijk te declareren, moet u het opnemen in de sectie Geëxporteerde pakketten op de pagina Runtime van de pluginmanifesteditor en de standaardzichtbaarheidsinstelling overnemen.

Toegankelijke pakketten

 

Verboden pakketten

U kunt een pakket te allen tijde verbergen voor stroomafwaartse plugins door het pakket uit te sluiten van de lijst in de sectie Geëxporteerde pakketten op de pagina Runtime van de pluginmanifesteditor.

Verwijzingen naar typen van een verboden pakket resulteren in klassenlaadfouten in runtime.

 Deze onwenselijke situatie wordt als volgt voorkomen:

  1. Het compileerprogramma markeert verwijzingen naar verboden pakketten als een fout.
  2. Typen van verboden pakketten zijn NIET beschikbaar als suggesties in de contenthulp.

Opmerkingen:

  1. Alle pakketten van plugins in de SDK van Eclipse worden opgesomd in de sectie Geëxporteerde pakketten.. Daarom wordt geen van de pakketten in de SDK geclassificeerd als verboden.
  2. U kunt het severityniveau voor verboden verwijzingen instellen op de voorkeurenpagina Java > Compiler > Fouten/Waarschuwingen > Verkorte en beperkte API.

    Het wordt aanbevolen om het severityniveau van een verboden verwijzing ingesteld te laten op Fout.

    Verboden - voorkeuren

 

Interne pakketten

Interne pakketten zijn pakketten die niet mogen worden gebruikt voor stroomafwaartse plugins. Deze pakketten zijn standaard zichtbaar voor stroomafwaartse plugins.

Interne pakketten worden alleen verborgen voor stroomafwaartse plugins wanneer Eclipse wordt gestart in de werkstand strict (met het VM-argument -Dosgi.resolverMode=strict).

Interne pakketten moeten worden opgenomen in de sectie Geëxporteerde pakketten op de pagina Runtime van de pluginmanifesteditor, waarbij de optie Verborgen ingeschakeld is.

niet-aanbevolen toegang

Op twee manieren wordt geprobeerd te voorkomen dat in stroomafwaartse plugins wordt verwezen naar interne pakketten:

niet-aanbevolen toegang

niet-aanbevolen contenthulp

U kunt het severityniveau voor niet-aanbevolen verwijzingen instellen op de voorkeurenpagina Java > Compiler > Fouten/Waarschuwingen > Verkorte en beperkte API.

Niet-aanbevolen voorkeuren

 

Interne pakketten met vrienden

Het is belangrijk dat u via een plugin onbeperkte toegang kunt verlenen aan interne pakketen voor aangewezen "bevriende" plugins. Zo is de code van PDE bijvoorbeeld verdeeld over meerdere plugins en moet de plugin org.eclipse.pde.ui onbeperkt toegang hebben tot de interne pakketten van org.eclipse.pde.core.

In het onderstaande voorbeeld heeft de bevriende plugin org.eclipse.pde.ui volledige toegang tot het pakket org.eclipse.pde.internal.core.bundle van de plugin org.eclipse.pde.core .

Vrienden

In de bevriende plugins kan vrijelijk worden verwezen naar elk type van het pakket org.eclipse.pde.internal.core.bundle zonder dat dit leidt tot markeringen van de compiler.

Als een andere plugin daarentegen een verwijzing naar een type van het pakket org.eclipse.pde.internal.core.bundle bevat, wordt die verwijzing gemarkeerd als niet-aanbevolen, op de wijze die in de voorgaande sectie is beschreven.

 

Procedure voor het instellen van toegangsbeperkingen

Als u wilt profiteren van de ondersteuning voor toegangsbeperkingen in PDE, hoeft u er slechts voor te zorgen dat de plugins in kwestie een OSGi-bundel MANIFEST.MF bevatten. PDE zorgt voor de rest, inclusief het beheer van het pluginklassenpad.

Als de plugin geen bestand MANIFEST.MF bevat, kunt u het als volgt maken:

  1. Open het bestand plugin.xml in de pluginmanifesteditor.
  2. Klik vervolgens, in de sectie Plugincontent op de pagina Overzicht, op de link Een OSGi-bundelmanifest maken.

converteer naarmanifest.mf

 

Toegangsregels inspecteren

U kunt de regels met toegangsbeperkingen die aan elk klassenpaditem door PDE zijn opgelegd, inspecteren op de eigenschappenpagina Java-buildpad van uw pluginproject.

Java-buildpadeigenschappen