Tredjepartsbiblioteker og klasseinnlasting
Fordi OSGi bruker flere klasseinnlastere, krever den transparente bruken av utvidbare/konfigurerbare
tredjepartsbiblioteker i Eclipse at det brukes en Eclipse-spesifikk mekanisme som kalles "buddy-innlasting". Med denne
mekanisme kan en bunt vise at den trenger assistanse for å laste inn klasser eller ressurser når den ikke finner
dem i den obligatoriske programvaren. Legg merke til at vi kaller biblioteker som må se klasser eller ressurser
fra brukerkoden (for eksempel log4j-loggermekanismen, dvale,...) for "utvidbare biblioteker".
For å vise behovet for buddy-innlasting, må en bunt endre manifestet og legge til følgende topptekst:
Eclipse-BuddyPolicy: <verdi>
<verdi> viser til policyen som brukes til å se etter klassene. Her er policyene som støttes:
- registered - viser at buddy-mekanismen vil konsultere buntene som er registrert i den. Bunter som er villige
til å registreres i en bestemt bunt, legger til dette i manifestet: "Eclipse-RegisterBuddy: <bundleSymbolicName>"
- dependent - viser at klassene/ressursene vil bli søkt etter transitivt i alle buntens
underordnede
- global - viser at det blir søkt etter klassene/ressursene i den globale poolen med eksporterte pakker
- app - viser at applikasjonsklasselasteren blir konsultert
- ext - viser at utvidelsesklasselasteren blir konsultert
- boot - viser at oppstartsklasselasteren blir konsultert