El archivo de manifiesto de aplicación contiene metadatos que permiten que el marco de trabajo OSGi procese los aspectos modulares de los paquetes.
Manifest-Version: 1.0
Application-Name: OSGi Blog Application
Application-SymbolicName: com.ibm.ws.eba.example.blog.app
Application-Version: 1.0.0
Application-Content: com.ibm.ws.eba.example.blog.api;version=1.0.0,
com.ibm.ws.eba.example.blog.persistence;version=1.0.0,
com.ibm.ws.eba.example.blog.web;version=1.0.0,
com.ibm.ws.eba.example.blog;version=1.0.0,
com.ibm.json.java;version="1.0.0"
Application-ManifestVersion: 1.0
Application-ImportService: com.ibm.ws.eba.counter.Greet
Application-ExportService: com.ibm.ws.eba.example.blog.api.BloggingService
El único nombre simbólico de la aplicación OSGi, que utiliza anotación de paquete en Java™.
La versión de la aplicación que utiliza la sintaxis OSGi para una versión del paquete.
El nombre de la aplicación.
Declare las dependencias externas del paquete que utiliza el marco de trabajo OSGi para la resolución de paquetes. Se pueden declarar versiones específicas o rangos de versiones para cada servicio.
Un conjunto de filtros para los servicios externos que consume la aplicación. El manifiesto de aplicación debe contener las clases que necesitan los servicios. Si no se especifica esta cabecera, no se importa ninguno de los servicios necesarios.
<identificar de servicio>;<directrices>;<atributos>
Por ejemplo:
test.it;filter="some_filter"
La cabecera
Application-ImportService tiene el atributo siguiente:Declara los servicios que están visibles fuera del paquete. Cualquier servicio que no esté declarado aquí sólo tiene visibilidad dentro del paquete.
Un conjunto de filtros para los servicios externos que genera la aplicación. Si no se especifica esta cabecera, no se exporta ninguno de los servicios necesarios.
<identificar de servicio>;<directrices>;<atributos>
Por ejemplo:
test.it;filter="some_filter"
La cabecera
Application-ExportService tiene el atributo siguiente:Un paquete compartido que proporciona al menos un paquete a un paquete de aplicación.
Una lista de paquetes o paquetes compuestos que se deben utilizar para satisfacer las dependencias de paquetes de la lista Application-Content. Cada paquete o paquete compuesto de la lista Use-Bundle debe proporcionar como mínimo un paquete a al menos un paquete de la lista Application-Content. Estos paquetes se aprovisionan en el espacio de paquetes compartidos en tiempo de ejecución.
A menudo, no necesita una cabecera Use-Bundle, pero hay algunos casos en los que es útil. Puede utilizarla para restringir el nivel en el que es posible la compartición. Por ejemplo, puede asegurarse de que una aplicación utiliza el mismo paquete para importaciones de paquetes con las que se ha probado. Como alternativa, puede asegurarse de que dos aplicaciones utilizan el mismo paquete para importaciones de paquetes. Estableciendo la restricción de nivel de aplicación, el paquete puede seguir siendo flexible.
Lista de no proyectos web dinámicos no OSGi que se incluyen en la aplicación.
Esta cabecera no forma parte del estándar de OSGi.
<identificar de módulo>;<directrices>;<atributos>
Normalmente, el identificador de módulo es el nombre simbólico de un paquete. Para hacer referencia a un recurso que no es un paquete, el identificador de módulo es la vía de acceso relativa a la raíz de la aplicación OSGi.
La cabecera Application-Content define las aplicaciones importantes que forman los servicios empresariales, pero no define la lista completa de los paquetes de la aplicación. Si un paquete que se lista en el contenido utiliza un paquete que no se incluye en la aplicación, se llevará a cabo un análisis de dependencias y se incluirán los paquetes que falten. Estos paquetes no pueden proporcionar servicios externos a la aplicación y no se les puede aplicar seguridad. Se comparten los paquetes que se incluyen utilizando este mecanismo.