Bibliotheken en klassenladers van derden
Omdat OSGi gebruikmaakt van meerdere klassenladers, is voor een transparant gebruik van uitbreidbare/configureerbare bibliotheken
van derden in Eclipse een specifiek mechanisme vereist dat "buddy loading" wordt genoemd. Dit mechanisme wordt gebruikt
door een bundel om aan te geven dat er hulp nodig is om vereiste klassen of resources te laden wanneer deze niet kunnen
worden gevonden. "Uitbreidbare bibliotheken" zijn bibliotheken waarvoor klassen of resources moeten worden aangeleverd
door middel van gebruikerscode (bijvoorbeeld log4j logger mechanism, hibernate, ...).
Om aan te geven dat buddy loading vereist is, moet het manifest van de desbetreffende bundel worden gewijzigd en de volgende koptekst worden toegevoegd:
Eclipse-BuddyPolicy: <waarde>
<waarde> verwijst naar het beleid dat wordt gebruikt om naar de klassen te zoeken. De volgende beleidswaarden worden ondersteund:
- registered (geregistreerd): met het buddy-mechanisme wordt gezocht in bundels die voor dit doel
geregistreerd zijn. Als u een bundel wilt registreren voor een bepaalde
bundel, moet u "Eclipse-RegisterBuddy: <bundleSymbolicName>" invoegen in het manifest.
- dependent (afhankelijk): hiermee wordt aangegeven dat de klassen/resources transitief worden
opgezocht in alle dependency's van de bundel.
- global (algemeen): hiermee wordt aangegeven dat de klassen/resources worden opgezocht in de
algemene groep geëxporteerde pakketten.
- app: hiermee wordt aangegeven dat de toepassingenklassenlader wordt geraadpleegd.
- ext: hiermee wordt aangegeven dat de extensieklassenlader wordt geraadpleegd.
- boot: hiermee wordt aangegeven dat de opstartklassenlader wordt geraadpleegd.