Nada más crearlo, lo que podemos observar es cómo aparecen dos clases importantes: Activator.java y MANIFEST.MF.
Activator.java:
Dentro de activator.java está BundleActivator, que se encarga de mandar notificaciones cuando se activa o desactiva el paquete.
- La clase BundleActivator debe llevar un constructor público sin parámetros. El marco de OSGi puede crear un objeto de tipo BundleActivator llamando a Class.newInstance().
- El contenedor debe llamar al método start() de la clase Activator para ejecutar el paquete. El paquete puede aprovechar esta oportunidad para realizar la inicialización de recursos tales como obtener una conexión de bases de datos para futuros usos. El método start() lleva un argumento, el objeto BundleContext. este objeto permite a los paquetes interactuar con el framework proporcionando acceso a la información relacionada con el contenedor- OSGi. Si se lanza una excepción de un paquete en particular el contenedor marcará ese paquete como stopped (parado) y no le pondrá en servicio.
- El contenedor puede llamar al método stop() de la clase Activator para informar de que se está apagando un paquete. Se puede aprovechar esta oportunidad para realizar tareas de limpieza como la liberación de la conexión de la base de datos.
MANIFEST.MF:
El archivo MANIFEST.MF actúa como descriptor implementador del paquete. El formato de este archivo es el mismo de un archivo JAR normal, por lo que consta de una serie de encabezados con valores. La especificación OSGi define una serie de cabeceras que pueden ser usadas para describir el paquete para el contenedor OSGi. Aquí podemos ver une ejemplo de un archivo MANIFEST.MF, realizado en uno de los tutoriales de un ejemplo de "Hola Mundo".
_____________________________________________________________________________
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HelloWorld Plug-in
Bundle-SymbolicName: com.javaworld.sample.HelloWorld
Bundle-Version: 1.0.0
Bundle-Activator: com.javaworld.sample.helloworld.Activator
Bundle-Vendor: JAVAWORLD
Bundle-Localization: plugin
Import-Package: org.osgi.framework;version="1.3.0"
______________________________________________________________
- Bundle-ManifestVersion: La cabecera de Bundle-ManifestVersion le dice al contenedor OSGi que este paquete sigue las reglas de la especificación OSGi. Un valor de 2 significa que el paquete acata las reglas de la especificación OSGi Release 4; un valor de 1 de que está hecho deacuerdo a la versión 3 o anteriores.
- Bundle-Name: El encabezado de Bundle-Name define un nombre corto para el paquete.
- Bundle-SymbolicName: La cabecera de Bundle-SymbolicName especifica un único, no localizable nombre para el paquete. Este es el nombre que se usará cuando otros paquetes quiern hacer referencia a éste.
- Bundle-Version: La cabecera Bundle-Version especifica la versión del paquete.
- Bundle-Activator: La cabecera Bundle-Activator especifica el nombre de la clase opcional "oyente" a ser notificada de paquete de inicio y parada de eventos.
- Bundle-Vendor: La cabecera de Bundle-Vendor contiene una descripción del "bundle vendor".
- Bundle-Localization: La cabecera de Bundle-Localization contiene la ubicación en el paquete de localización de archivos donde puede ser encontrada. Aunque no se disponga de un paquete de localización de archivos, el IDE de eclipse genera esta cabecera.
- Import-Package: La cabecera de Import-Package define los paquetes que son importados.
0 comentarios:
Publicar un comentario