Accessregler

Runtime för Eclipse 3.1 ger utvecklare av insticksprogram alternativet att på per-paket-basis styra synligheten för insticksprogramkoden för underordnade insticksprogram.

Ett paket kan klassificeras som ett av följande:

  1. Tillgängligt
  2. Förbjudet
  3. Internt
  4. Internt med väninsticksprogram

PDE översätter de här reglerna för runtime-synlighet till accessbegränsningsregler för kompilatorn vid kompilering. Som resultat flaggas brott mot synlighetsregeln i kompilatorn som en varning eller ett fel - beroende på brottets allvarlighetsgrad.

Med den här typen av funktioner vid kompilering behöver du aldrig överraskas av klassinläsningsfel vid körning och kan alltid vara medveten om referenser till interna typer.

 

Tillgängliga paket

Tillgängliga paket är synliga för underordnade insticksprogram utan villkor.   API-paket måste ingå i den här kategorin, men i övrigt kan utvecklaren bestämma vilka andra paket som exporteras av insticksprogrammet som bör ges den här synlighetsnivån.

För att kunna deklarera ett paket som tillgängligt måste du ange det i avsnittet Exporterade paket i Runtime för manifestredigeraren för insticksprogram och behålla standardinställningen för synlighet.

Tillgängliga paket

 

Förbjudna paket

Du kan alltid dölja ett paket från underordnade insticksprogram genom att undanta det från listan i avsnittet Exporterade paket på sidan Runtime i manifestredigeraren för insticksprogrammet.

Referenser till typer från ett förbjudet paket resulterar i klassinläsningsfel vid körning.

 Så här undviker du sådana otrevliga situationer:

  1. Kompilatorn kommer att flagga för referenser till förbjudna paket med fel.
  2. Typer från förbjudna paket är INTE tillgängliga som förslag i innehållshjälpen.

Obs!

  1. Alla insticksprogram i SDK för Eclipse räknar upp alla sina paket i avsnittet Exporterade paket. Därför har inget av paketen i SDK förbjuden access.
  2. Allvarlighetsnivån för förbjudna referenser anges på inställningssidan Java > Kompilator > Fel/varningar > Utkommenterat och begränsat API.

    Vi rekommenderar starkt att allvarlighetsnivån för en förbjuden referens behålls som error.

    Förbjudna inställningar

 

Interna paket

Interna paket är paket som inte är avsätta att användas av underordnade insticksprogram. De här paketen är synliga för underordnade insticksprogram som standard.

Interna paket är endast dolda för underordnade insticksprogram när Eclipse startas i strikt läge (dvs. när du startar med VM-argumentet -Dosgi.resolverMode=strict).

Interna paket måste anges i avsnittet Exporterade paket på sidan Runtime i manifestredigeraren för insticksprogrammet med alternativet dolt valt.

avrådd access

Två åtgärder vidtas för att avråda att underordnade insticksprogram refererar till interna paket:

avrådd access

avrådd innehållshjälp

Allvarlighetsnivån för avrådda referenser kan anges på inställningssidan Java > Kompilator > Fel/varningar > Utkommenterat och begränsat API.

Avrådda inställningar

 

Interna paket med väninsticksprogram

Det är viktigt att ett insticksprogram kan ge fullständig access till sina interna paket till tilldelade "väninsticksprogram". Exempelvis delas PDE-koden mellan flera insticksprogram och insticksprogrammet org.eclipse.pde.ui ska ha fullständig access till org.eclipse.pde.cores interna paket.

I exemplet nedan har väninsticksprogrammet org.eclipse.pde.ui fullständig access till paketet org.eclipse.pde.internal.core.bundle från insticksprogrammet org.eclipse.pde.core.

Väninsticksprogram

Väninsticksprogrammen kan referera till vilken typ som helst från paketet org.eclipse.pde.internal.core.bundle med kompilatorns godkännande.

Å andra sidan, om något annat insticksprogram refererar till en typ från paketet org.eclipse.pde.internal.core.bundle, flaggar kompilatorn för referensen som en avrådd referens enligt beskrivning i föregående avsnitt.

 

Så här aktiverar du accessbegränsningar

För att du ska kunna dra nytta av funktionerna för accessbegränsning i PDE är det enda kravet att de aktuella insticksprogrammen innehåller en MANIFEST.MF för OSGi-samlingspaket. PDE tar hand om resten inklusive hanteringen av klassökvägen för insticksprogrammet.

Om insticksprogrammet inte innehåller en MANIFEST.MF-fil, kan filen skapas på följande sätt:

  1. Öppna plugin.xml i manifestredigeraren för insticksprogram.
  2. I avsnittet Innehåll för insticksprogram på sidan Översikt klickar du på länken 'Skapa ett manifest för OSGi-samlingspaket'.

konvertera till manifest.mf

 

Kontrollera accessregler

Du kan kontrollera de accessbegränsningsregler som uppställts för varje klassökvägspost av PDE på egenskapssidan Java-byggsökväg för projektet för insticksprogram.

Egenskaper för Java-byggsökväg