Biblioteki innych firm i ładowanie klas
Ponieważ środowisko OSGi korzysta z wielu programów ładujących klasy, przezroczyste użycie rozszerzalnych
i konfigurowalnych bibliotek innych firm na platformie Eclipse wymaga użycia mechanizmu tej platformy
o nazwie "buddy loading" (ładowanie znajomych). Ten mechanizm pozwala pakunkowi na wskazanie, że
potrzebna jest pomoc w celu załadowania klas lub zasobów, jeśli nie można ich znaleźć w wymaganiach
wstępnych pakunku. Bibliotekami rozszerzalnymi nazywane są biblioteki, które wymagają klas lub zasobów
udostępnianych przez kod użytkownika (na przykład mechanizm programu protokołującego log4j, hibernacja itp.).
Aby wskazać, że konieczne jest ładowanie znajomych, pakunek musi zmodyfikować swój manifest poprzez dodanie
następującego nagłówka:
Eclipse-BuddyPolicy: <wartość>
<wartość> odnosi się to strategii używanej do wyszukania klas. Poniżej przedstawiono
obsługiwane strategie:
- registered - wskazuje, że mechanizm ładowania znajomych będzie sprawdzał pakunki zarejestrowane
w tym mechanizmie. Aby zarejestrować pakunek dla określonego pakunku, należy dodać do ich manifestu
nagłówek: "Eclipse-RegisterBuddy: <nazwaSymbolicznaPakunku>".
- dependent - wskazuje, że klasy i zasoby będą wyszukiwane przechodnio we wszystkich
elementach zależnych pakunku.
- global - wskazuje, że klasy i zasoby będą wyszukiwane w globalnej puli wyeksportowanego pakietu.
- app - wskazuje, że sprawdzony zostanie program ładujący klasy aplikacji.
- ext - wskazuje, że sprawdzony zostanie program ładujący klasy rozszerzenia.
- boot - wskazuje, że sprawdzony zostanie program ładujący klasy startowej.