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
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 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.
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:
Bemærkninger:
Det anbefales kraftigt, at du lader niveauet for en forbudt reference forblive Fejl.
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.
Der tages to forholdsregler for at afholde downstream-plugins fra at referere til interne pakker:
Problemniveauet for frarådede referencer fastsættes på indstillingssiden
Java > Compiler > Fejl/Advarsler > Forældet og begrænset API.
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.
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.
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:
Du kan inspicere de adgangsbegrænsningsregler, der er angivet for hver enkelt CLASSPATH-indgang, på egenskabssiden for Java-byggesti i plugin-projektet.
Plugin-editor
Oversigtsside
Side om afhængigheder
Side om runtime
Side om udvidelser
Side om udvidelsespunkter
Side om bygning