¿Cuál es la mejor manera de agrupar los paquetes OSGi para hacer una 'aplicación' coherente?

La "forma OSGi" es desarrollar paquetes separados que contengan piezas discretas y coherentes de funcionalidad. A veces, estos paquetes contienen clases de utilidad, a veces dependen de clases de utilidad y configuran sus propios Servicios OSGi.

Por otra parte, es poco probable que los usuarios estén expuestos a paquetes. Se preocupan más por elsolicitud, una pieza de software que realiza una tarea o resuelve su problema. Normalmente, una aplicación utilizará varios paquetes (por ejemplo, importados a través de Import-Package) para realizar sus tareas.

¿Cuál es la mejor manera de formalizar esta relación en el mundo OSGi? Un ejemplo de requisito sería algo tan simple como mostrar el número de versión actualde la aplicación (no el paquete (s)) para el usuario. ¿Cómo se descubrirá este número de versión?

Eclipse tiene un concepto llamado 'características', pero este no es el estándar OSGi.

Peter Kriens tieneescrito sobre aplicaciones OSGi y su artículo tiene sentido. Mi conclusión fue que una aplicación puede asignarse a un paquete; es solo que el paquete usa otros paquetes de alguna manera. Pero si uno es crear un paquete de aplicaciones utilizando Import-Package, no veo cómo eso puede ser factible desde el punto de vista del desarrollo.

Una forma puede ser tener un 'paquete de aplicaciones' que use Require-Bundle y tenga su propia versión, pero Require-Bundle está mal visto en el mundo OSGi.

El uso de Import-Package para importar todos los paquetes requeridos con las versiones requeridas, sin embargo, agrega unsignificativo Gastos generales de mantenimiento al desarrollador en la medida en que no creo que sea factible. Cada vez que se realiza el cambio más pequeño, incluso a un paquete de implementación, la versión del paquete debe actualizarse, y luego la dependencia de la versión del paquete actualizada en el 'paquete de aplicaciones'.

Respuestas a la pregunta(3)

Su respuesta a la pregunta