Bibliotecas de terceros y carga de clases
Dado que OSGi utiliza varios cargadores de clases, el uso transparente de
bibliotecas de terceros ampliables/configurables requiere el uso de un
mecanismo específico de Eclipse denominado "carga amiga".
Este mecanismo permite que un paquete indique que necesita asistencia para
cargar clases o recursos cuando no pueda encontrarlos entre sus requisitos
previos.
Observe que denominamos "bibliotecas ampliables" a las que tienen que ver
clases o recursos proporcionados por código de usuario (por ejemplo,
log4j logger mechanism, hibernate,...).
Para indicar que necesitan la carga amiga, un paquete debe modificar su
manifiesto y añadir la cabecera siguiente:
Eclipse-BuddyPolicy: <valor>
<valor> hace referencia a la política utilizada para buscar las clases. Estas
son las políticas soportadas:
- registered: indica que el mecanismo amigo consultará los paquetes que
tiene registrados.
Un paquete que desee registrarse en un paquete determinado añade en su
manifiesto: "Eclipse-RegisterBuddy: <bundleSymbolicName>";
- dependent: indica que las clases/recursos se buscarán de forma
transitiva en todos los dependientes del paquete;
- global: indica que las clases/recursos se buscarán en la agrupación
global de paquete exportado;
- app: indica que se consultará el cargador de clases de aplicación;
- ext: indica que se consultará el cargador de clases de extensión;
- boot: indica que se consultará el cargador de clases de arranque.