OSGi: Primeros pasos (y 2)
9 junio 2008 at 8:58 pm 3 comentarios
Bien, continuamos avanzando en el camino que empezamos en la primera entrada. Para empezar, os quería comentar mi opinión respecto a OSGi, basada en este pequeño estudio que he hecho. Esta tecnología favorece el diseñar e implementar aplicaciones en forma de módulos, lo que ayuda de cara a la reutilización y encapsulación de servicios. Al igual que la inyección de dependencias favorece la buena práctica de utilizar interfaces, OSGi favorece la buena práctica de modularizar. Hecho este pequeño inciso, pasamos al punto donde lo dejamos. Crear nuestro primer módulo. El código de mi primer módulo será:
package org.tcymu.osgi; import java.util.logging.Logger; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class FirstBundle implements BundleActivator { Logger logger = Logger.getLogger(this.getClass().getName()); public void start(BundleContext arg0) throws Exception { logger.info("Arrancando FirstBundle"); } public void stop(BundleContext arg0) throws Exception { logger.info("Parando FirstBundle"); } }
Como vemos basta con implementar BundleActivator
, con sus métodos start
y stop
. En nuestro caso sacamos una traza de log en cada caso. Seguidamente necesitamos crear un descriptor para el jar
de nuestro primer módulo. El contenido de nuestro MANIFEST.MF
es:
Manifest-Version: 1.0 Bundle-SymbolicName: org.tcymu.osgi.FirstBundle Bundle-Version: 1.0.0 Bundle-Activator: org.tcymu.osgi.FirstBundle Import-Package: org.osgi.framework
Le damos a nuestro módulo un nombre y una versión, le señalamos la clase activadora mediante Bundle-Activator
y le indicamos los paquetes requeridos mediante Import-Package
Bien, con esto ya podemos empaquetar nuestro módulo en un jar
de la manera que más rabia nos dé. En mi caso lo he empaquetado mediante el export de Eclipse.
Ahora ya podemos instalar el módulo en Felix, para lo que usamos install
y que nos devuelve el identificador de nuestro módulo dentro del contenedor.
Con ese identificador podemos arrancar el módulo mediante start
, pararlo mediante stop
o desinstalarlo mediante uninstall
.
Bien, pues ya hemos visto cómo crear un módulo. Dejaré para más adelante el crear módulos dependientes de otros módulos y otras acciones más avanzadas. Por cierto, para salir de Felix, si no lo habéis descubierto todavía, se debe ejecutar shutdown
.
3 comentarios Add your own
Deja una respuesta
Trackback this post | Subscribe to the comments via RSS Feed
1. OSGi: Primeros pasos « Tus ceros y mis unos | 22 agosto 2008 a las 12:36 pm
[…] Actualización: Segunda parte […]
2. La victácora | 7 mayo 2011 a las 5:00 pm
Spring Dynamic Modules…
OSGI and Spring Dynamic Modules – Simple Hello World……
3. Spring Dynamic Modules « La victácora | 7 mayo 2011 a las 5:00 pm
[…] Crea tu primer módulo. […]