sur solsticio significado primavera otoño invierno hemisferio equinoccio osgi shutdown equinox

osgi - solsticio - equinoccio significado



La mejor manera de cerrar un contenedor OSGi(específicamente el equinoccio) (4)

No hay una forma estándar de hacer esto todavía. OSGI hará esta parte de su api estándar en la próxima versión, pero adivino que tomará un tiempo antes de que todos los contenedores OSGI implementen esto. Utilice el código específico del contenedor por ahora, pero manténgase alejado de System.exit ().

Saludos,

Leen Toelen

Estoy buscando una mejor práctica para cerrar un contenedor OSGi.

Actualmente estamos usando una pequeña aplicación de inicio que llama a EclipseStarter.startup () e instala algunos paquetes principales. Después de que el lanzador termina.

Cuando se cierra la prueba GUI (que se ejecuta como un paquete), llama a System.exit (0) para cerrar el contenedor, pero debe haber una solución más elegante que esta.

Gracias


Normalmente termino el marco así:

bundlecontext.getBundle(0).stop();

El paquete con id = 0 es el paquete de sistema


Por favor, no use System.exit (0) para cerrar un marco OSGi. Debe hacerlo deteniendo el paquete con el ID 0, el paquete del sistema. De esta manera, le da a todos los paquetes la oportunidad de cerrar de manera ordenada (por ejemplo, para liberar recursos, etc.).

La especificación OSGi define lo siguiente (Especificación básica, R4.x, 4.2.6 Detención de un marco).

El apagado se puede iniciar deteniendo el paquete del sistema o [...] llamando al método de detención en el objeto de marco.

En ese capítulo se proporciona una descripción detallada de lo que sucede cuando se cierra un marco.

El paquete de sistema resp. También se define el objeto marco (capítulo 4.6 El paquete del sistema):

El paquete del sistema se parece al objeto marco cuando se inicia un marco, pero no se requiere que las implementaciones usen el mismo objeto para el objeto marco y el paquete del sistema. Sin embargo, ambos objetos deben tener el ID de paquete 0, la misma ubicación y el nombre simbólico del paquete.

La especificación OSGi está disponible de forma gratuita en el sitio web de la Alianza OSGi ( http://www.osgi.org/Specifications/HomePage ).


También uso Equinox en un contexto incrustado en una aplicación, llamo a stop () en el paquete del sistema y hago seguimiento con EclipseStarter.shutdown (). Es posible que tengas que detener todos tus paquetes.

Nunca he estado realmente preocupado por el cierre del paquete en mi aplicación ya que no hay un estado retenido.