Tilgangsregler
Eclipse 3.1-kjøretiden gir plugin-utvikleren muligheten til å til å styre plugin-kodens synlighet for nedstrøms plugin-moduler på pakkebasis.
En pakke kan klassifiseres som ett av følgende:
PDE oversetter disse reglene for kjøretidssynlighet til begrensningsregler for kompilatortilgang på kompileringstidspunktet. Som et resultat blir en overtredelse av en synlighetsregel flagget av kompilatoren som en advarsel eller en feil, avhengig av alvorsgraden for denne overskridelsen.
Med denne typen støtte på kompileringstidspunktet, blir en aldri overrasket av klasselastingsfeil i kjøretiden, og en vil alltid være klar over referanser til interne typer.
Tilgjengelige pakker
Tilgjengelige pakker er ubetinget synlige for nedstrøms plugin-moduler. Mens API-pakker må tilhøre denne kategorien, er det fullstendig opp til utvikleren å bestemme om andre pakker som eksporteres av plugin-modulen, skal gis dette nivået av synlighet.
For å deklarere en pakke som tilgjengelig, må du oppgi den i delen Eksporterte pakker på siden Kjøretid for redigeringsprogrammet for plugin-manifest, og la standardinnstillingen for synlighet være som den er.
Forbudte pakker
Du kan når som helst skjule en pakke fra nedstrøms plugin-moduler ved å ekskludere den fra listen i delen Eksporterte pakker på siden Kjøretid i redigeringsprogrammet for plugin-manifest.
Referanser til typer fra en forbudt pakke, resulterer i klasselastingsfeil i kjøretiden.
Slik blir slike utrivelige situasjoner unngått:
Merk:
Det anbefales på det sterkeste at alvorsgraden for en forbudt referanse beholdes som feil.
Interne pakker
Interne pakker er pakker som ikke er beregnet på bruk av nedstrøms plugin-moduler. Disse pakkene er synlige for nedstrøms plugin-moduler som standard.
Interne pakker er bare skjult fra nedstrøms plugin-moduler når Eclipse startes i strict-modus (det vil si når du starter med VM-argumentet -Dosgi.resolverMode=strict).
Interne pakker må oppgis i delen Eksporterte pakker på siden Kjøretid i redigeringsprogrammet for plugin-manifest med alternativet skjult valgt.
Det blir tatt to forholdsregler for å fraråde at nedstrøms plugin-moduler refererer til interne pakker:
Alvorsgraden for
frarådede referanser kan defineres på preferansesiden
Java > Kompilator > Feil/advarsler > Foreldet og begrenset API.
Interne pakker med venner
Det er viktig for en plugin-modul at den kan gi full tilgang til de interne pakkene til definerte "venne"-plugin-moduler. PDE-koden er for eksempel delt over flere plugin-moduler, og plugin-modulen org.eclipse.pde.ui skal ha full tilgang til de interne pakkene i org.eclipse.pde.core.
I eksempelet nedenfor har venne-plugin-modulen org.eclipse.pde.ui full tilgang til pakken org.eclipse.pde.internal.core.bundle fra plugin-modulen org.eclipse.pde.core.
Vennene kan referere til en hvilken som helst type fra pakken org.eclipse.pde.internal.core.bundle med kompilatorens velsignelse.
På den andre siden, hvis en hvilken som helst annen plugin-modul refererer til en type fra pakken org.eclipse.pde.internal.core.bundle, flagger kompilatoren referansen som en frarådet referanse, slik det beskrives i forrige del.
Slik aktiverer du tilgangsbegrensninger
Når PDEs støtte for tilgangsbegrensninger skal utnyttes, er det eneste kravet at de aktuelle plugin-modulene inneholder en MANIFEST.MF-fil for en OSGi-bunt. PDE tar seg av resten, inkludert administreringen av plugin-modulens klassebane.
Hvis plugin-modulen ikke inneholder en MANIFEST.MF-fil, kan filen opprettes på denne måten:
Inspisere tilgangsregler
Du kan inspisere tilgangsbegrensningsreglene som er pålagt hver klassebaneoppføring av PDE, på siden Java-byggebane for plugin-prosjektet.