Adgangsregler

Med Eclipse 3.1 runtime har udviklere af plugins mulighed for at kontrollere synligheden af plugin-koden, så plugins kan hentes på pakkebasis.

En pakke kan klassificeres som et af følgende

  1. Tilgængelig
  2. Forbudt
  3. Intern
  4. Intern i forhold til venner

PDE konverterer disse runtime-synlighedsregler til begrænsningsregler for compileradgang på kompileringstidspunktet. En overtrædelse af en synlighedsregel bliver derefter markeret af compileren som en advarsel eller en fejl, afhængigt af hvor alvorlig overtrædelsen er.

Med denne type understøttelse på kompileringstidspunktet kommer man aldrig ud for runtime-klasseindlæsningsfejl, og man er altid opmærksom på interne typereferencer.

Tilgængelige pakker

Tilgængelige pakker er ubetinget synlige for downstream-plugins.   API-pakker hører helt klart til i denne kategori, men ellers er det helt op til programudvikleren at afgøre, hvilke andre pakker, som eksporteres af en plugin, der skal tildeles dette niveau af synlighed.

For at kunne erklære en pakke som tilgængelig skal du angive den i afsnittet Eksporterede pakker under Runtime for plugin-manifesteditoren og bevare standardindstillingen for synlighed.

Tilgængelige pakker

 

Forbudte pakker

Du kan på et hvilket som helst tidspunkt skjule en pakke fra downstream-plugins ved at ekskludere den fra listen i afsnittet Eksporterede pakker på siden Runtime til plugin-manifesteditoren.

Referencer til typer fra en forbudt pakke medfører runtime-klasseindlæsningsfejl.

Sådan undgår du disse ubehagelige situationer:

  1. Compileren markerer referencer til forbudte pakker med en fejl.
  2. Typer fra forbudte pakker er IKKE tilgængelige som forslag i Indholdsassistance.

Bemærkninger:

  1. Alle plugins i Eclipse SDK optæller alle deres pakker i afsnittet Eksporterede pakker. Derfor er adgang ikke forbudt til nogen af pakkerne i SDK.
  2. Niveauet for ikke-tilladte referencer angives på indstillingssiden Åbn problemniveauer Indstillingssiden Java > Compiler > Fejl/Advarsler > Forældet og begrænset API.

    Det anbefales kraftigt, at du lader niveauet for en forbudt reference forblive Fejl.

Forbudte indstillinger

Interne pakker

Interne pakker er pakker, som ikke er beregnet på at blive brugt af downstream-plugins. Disse pakker er som standard synlige for downstream-plugins.

Interne pakker skjules kun for downstream-plugins, når Eclipse startes i strict (dvs. når du starter med VM-argumentet -Dosgi.resolverMode=strict).

Interne pakker skal angives i afsnittet Eksporterede pakker på siden Runtime i plugin-manifesteditoren, og parameteren hidden skal være valgt.

Frarådet adgang

Der tages to forholdsregler for at afholde downstream-plugins fra at referere til interne pakker:

Frarådet adgang

Fraråder indholdsassistance

Problemniveauet for frarådede referencer fastsættes på indstillingssiden Åbn indstillingssiden Problemniveauer Java > Compiler > Fejl/Advarsler > Forældet og begrænset API.

Frarådede indstillinger

Interne pakker i forhold til venner

Det er vigtigt, at en plugin kan give fuldstændig adgang til sine interne pakker i forhold til specifikke venskabelige plugins. PDE-koden opdeles f.eks. på flere forskellige plugins, og derfor skal plugin-funktionen org.eclipse.pde.ui have fuldstændig adgang til de interne pakker i org.eclipse.pde.core.

I nedenstående eksempel har den "venskabelige" plugin org.eclipse.pde.ui fuld adgang til pakken org.eclipse.pde.internal.core.bundle fra plugin'en org.eclipse.pde.core.

Venner

Compileren tillader vennerne at referere til en hvilken som helst type pakke i org.eclipse.pde.internal.core.bundle.

Hvis en anden plugin derimod refererer til en type fra pakken org.eclipse.pde.internal.core.bundle, markerer compileren referencen som en frarådet reference som beskrevet i forrige afsnit.

Sådan aktiverer du adgangsbegrænsninger

Når du vil benytte PDE's adgangsbegrænsningsfunktioner, er det eneste krav, at den pågældende plugin indeholder en MANIFEST.MF-fil til OSGi-bundter. PDE håndterer resten, inklusive administrationen af Classpath til plugin'en.

Hvis plugin'en ikke indeholder en MANIFEST.MF-fil, kan filen oprettes på følgende måde:

  1. Åbn filen plugin.xml i plugin-manifesteditoren.
  2. Klik på linket 'opret et OSGi-bundtmanifest' på siden Oversigt Oversigt i afsnittet Plugin-indhold.

Konvertér til manifest.mf

Inspicér adgangsregler

Du kan inspicere de adgangsbegrænsningsregler, der er angivet for hver enkelt CLASSPATH-indgang, på egenskabssiden for Java-byggesti i plugin-projektet.

Egenskaber for Java-byggesti

Relaterede referencer

Plugin-editor
Oversigtsside
Side om afhængigheder
Side om runtime
Side om udvidelser
Side om udvidelsespunkter
Side om bygning