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:
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.
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:
Opmerkingen:
Het wordt aanbevolen om het severityniveau van een verboden verwijzing ingesteld te laten op Fout.
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.
Op twee manieren wordt geprobeerd te voorkomen dat in stroomafwaartse plugins wordt verwezen naar interne pakketten:
U kunt het severityniveau voor niet-aanbevolen verwijzingen instellen op de voorkeurenpagina
Java > Compiler > Fouten/Waarschuwingen > Verkorte en beperkte API.
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 .
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:
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.