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.

Entry filed under: Java. Tags: , , .

OSGi: Primeros pasos Instalando CakePHP

3 comentarios Add your own

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Mi perfil

View Miguel Orbegozo's profile on LinkedIn

Feedjit

Feeds

Otros…

BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog

Bitacoras.com

Add to Technorati Favorites


A %d blogueros les gusta esto: