Gestión de contenido dinámico

Generalmente para instalar los paquetes en el entorno de ejecución se listan en la cabecera Subsystem-Content del archivo de manifiesto de la característica. Sin embargo, también puede añadir y eliminar dinámicamente paquetes OSGi mediante la instalación de un paquete escrito por el usuario como parte de Subsystem-Content de una característica escrita por el usuario. El paquete escrito por el usuario obtiene el contexto de paquetes OSGi para instalar y controlar paquetes adicionales.

Instalación, inicio, detención y desinstalación de paquetes en Liberty

Nota: En las secciones siguientes, la característica escrita por el usuario se denomina UserFeatureA y el paquete escrito por el usuario se denomina FeatureBundleA.
Instalación de paquetes
Puede escribir FeatureBundleA para obtener el contexto de paquetes OSGi, org.osgi.framework.BundleContext, utilizando uno de los métodos siguientes:

Una vez que FeatureBundleA obtiene el contexto del paquete, se pueden instalar paquetes adicionales mediante el uso de los métodos installBundle(String location) o installBundle(String location, InputStream stream).

Los paquetes que se instalan dinámicamente reanudan el estado en un reinicio predeterminado. No persisten en un inicio limpio y requieren reinstalación. Consulte Almacenamiento en memoria caché de paquetes para obtener más detalles.

Inicio de paquetes
Si desea que se inicie un paquete instalado, el paquete de instalación, FeatureBundleA, debe llamar al método start para el paquete.
Detención y desinstalación de paquetes
Si la característica escrita por el usuario, UserFeatureA, se elimina de la configuración del servidor, FeatureBundleA se detiene y además se desinstala. La desinstalación de FeatureBundleA activa la desinstalación de todos los paquetes instalados por FeatureBundleA, si todavía no se han desinstalado. El método org.osgi.framework.Bundle.uninstall() se llama para cada paquete, que se detiene y se desinstala. Este proceso de desinstalación también se aplica si FeatureBundleA se desinstala por otros medios.

Si UserFeatureA se elimina de la configuración del servidor cuando el servidor está detenido, los paquetes instalados por UserFeatureA se eliminan la próxima vez que se inicie el servidor. Si los niveles de inicio de los paquetes no se han modificado y conservan los valores por omisión, los paquetes se eliminan antes de que se reinicien. Si los niveles de inicio de los paquetes se han modificado, puede que no se eliminen hasta después de su reinicio.

FeatureBundleA realiza otras tareas de gestión de ciclo de vida de acuerdo con la especificación principal de OSGi, mediante el uso de las interfaces org.osgi.framework.Bundle y org.osgi.framework.BundleContext.

Almacenamiento en memoria caché de paquetes, visibilidad de paquetes y soporte del modelo de programación en Liberty

Almacenamiento en memoria caché de paquetes
Al apagar el servidor, todos los paquetes instalados actualmente se detienen y los metadatos OSGi se conservan en una memoria caché de paquetes. Al realizar un inicio predeterminado, estos paquetes instalados recuperan su estado anterior. Si se realiza un inicio limpio, se suprimen los datos persistentes de los paquetes que se instalaron mediante FeatureBundleA. Como resultado, en un inicio limpio estos paquetes no se reanudan. FeatureBundleA se reanuda al reinstalarlo el Gestor de características, siempre que UserFeatureA esté en la configuración del servidor. Si desea reinstalar los paquetes después de un inicio limpio, la reinstalación es responsabilidad de FeatureBundleA. No se notifica acerca de un inicio limpio, pero puede comprobar si un paquete se ha instalado mediante el método BundleContext getBundle(String location) de OSGi.
Visibilidad de paquetes
Los paquetes que se instalan dinámicamente, y no aparecen en la cabecera Subsystem-Content del archivo de manifiesto de característica, tienen la visibilidad siguiente:
  • Los paquetes instalados dinámicamente pueden importar los paquetes de API y SPI proporcionada por el conjunto de características configuradas actualmente.
  • Los paquetes que exportan otros paquetes dentro de la misma extensión del producto no declarados como API o SPI no son visibles para los paquetes instalados dinámicamente.
  • Los paquetes que se exportan desde paquetes instalados dinámicamente no se pueden declarar como API o SPI.
  • No hay restricciones sobre la importación de paquetes que se exportan desde paquetes instalados dinámicamente.
Soporte del modelo de programación
Los paquetes instalados dinámicamente pueden utilizar las implementaciones de las especificaciones Enterprise OSGi, siempre que las características de tiempo de ejecución adecuadas estén configuradas para permitirlas.

Icono que indica el tipo de tema Tema de referencia



Icono de indicación de fecha y hora Última actualización: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_dynamic_content
Nombre de archivo:rwlp_dynamic_content.html