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:

  1. Tilgjengelig
  2. Forbudt
  3. Intern
  4. Intern med venner

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.

Tilgjengelige pakker

 

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:

  1. Kompilatoren flagger referanser til forbudte pakker med en feil.
  2. Typer fra forbudte pakker er IKKE tilgjengelige som forslag i innholdshjelpen.

Merk:

  1. Alle plugin-moduler i Eclipse SDK regner opp alle pakkene i delen Eksporterte pakker. Derfor har ingen av pakkene i SDK forbudt tilgang.
  2. Alvorsgraden for forbudte referanser er definert på preferansesiden Java > Kompilator > Feil/advarsler > Foreldet og begrenset API.

    Det anbefales på det sterkeste at alvorsgraden for en forbudt referanse beholdes som feil.

    Forbudte preferanser

 

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.

Frarådet tilgang

Det blir tatt to forholdsregler for å fraråde at nedstrøms plugin-moduler refererer til interne pakker:

Frarådet tilgang

Frarådet innholdshjelp

Alvorsgraden for frarådede referanser kan defineres på preferansesiden Java > Kompilator > Feil/advarsler > Foreldet og begrenset API.

Frarådede preferanser

 

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.

Venner

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:

  1. Åpne plugin.xml i redigeringsprogrammet for plugin-manifest.
  2. I delen Plugin-innhold på siden Oversikt klikker du på linken Opprett et OSGi-buntmanifest.

Konverter til manifest.mf

 

Inspisere tilgangsregler

Du kan inspisere tilgangsbegrensningsreglene som er pålagt hver klassebaneoppføring av PDE, på siden Java-byggebane for plugin-prosjektet.

Egenskaper for Java-byggebane