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:
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.
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:
Obs!
Vi rekommenderar starkt att allvarlighetsnivån för en förbjuden referens behålls som error.
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.
Två åtgärder vidtas för att avråda att underordnade insticksprogram refererar till interna paket:
Allvarlighetsnivån för avrådda referenser kan anges på inställningssidan
Java >
Kompilator > Fel/varningar > Utkommenterat och begränsat API.
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ä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:
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.