Librerie di altri produttori e caricamento classi
Dal momento che OSGi utilizza più caricatori classi, l'utilizzo trasparente di librerie di altri produttori
estensibili/configurabili in Eclipse richiede l'utilizzo di un meccanismo specifico di Eclipse
denominato "buddy loading". Questo meccanismo consente ad un insieme di indicare che è richiesto supporto
per caricare le classi e le risorse quando non riesce ad individuarle nei prerequisiti. Notare che si
definiscono "librerie estensibili", le librerie che richiedono classi o risorse fornire dal codice utente (ad
esempio, il meccanismo logger log4j, hibernate, ecc.).
Per indicare la necessità del "buddy loading", un insieme deve modificare il proprio file
manifest ed aggiungere la seguente intestazione:
Eclipse-BuddyPolicy: <valore>
<valore> fa riferimento ai criteri utilizzati per ricercare le classi. Di seguito sono riportati i
criteri supportati:
- registered - indica che il meccanismo di caricamento considererà gli insiemi ad esso
registrati. Un insieme che vuole essere registrato ad un particolare insieme aggiungerà nel manifest:
"Eclipse-RegisterBuddy: <nomeInsiemeSimbolico>";
- dependent - indica che le classi/risorse verranno ricercate in tutte le dipendenze dell'insieme;
- global - indica che le classi/risorse verranno ricercate nell'intero pacchetto
esportato;
- app - indica che deve essere consultato il caricatore classi dell'applicazione;
- ext - indica che deve essere consultato il caricatore classi dell'estensione;
- boot - indica che deve essere consultato il caricatore classi di avvio.