Entorno OSGi standalone basado en Equinox

Para poder disponer de un entorno OSGi básico, basado en la distribución Equinox de Eclipse, y lo más importante, fuera del entorno de Eclipse, tenemos que disponer de un paquete de ficheros que definimos, a continuación.

Creamos una carpeta que contendrá todo el paquete de distribución OSGi. Lo podemos llamar «osgi-runtime», por ejemplo. Dentro de esta carpeta tendremos una copia del fichero org.eclipse.osgi.

A continuación, creamos una carpeta plugins y dentro de esta tendremos una copia de los siguientes ficheros jars mínimos necesarios para ejecutar el entorno OSGi.

  • org.apache.felix.gogo.command
  • org.apache.felix.gogo.runtime
  • org.apache.felix.gogo.shell
  • org.eclipse.equinox.console

Y también de nuestros bundles que forman parte de nuestra aplicación. Aunque, personalmente, me gusta más separar lo nuestro de los requeridos por el entorno. Llamemos a nuestra carpeta de bundles, app.

Además de la carpeta anterior, creamos otra que llamaremos configuration. En esta habrá un único fichero llamado config.ini cuyo contenido será como el que mostramos, a continuación.

osgi.bundles=plugins/org.apache.felix.gogo.runtime@start,\
plugins/ org.apache.felix.gogo.command@start,\
plugins/ org.apache.felix.gogo.shell@start,\
plugins/ org.eclipse.equinox.console@start ,\
app/ (nombre de todos y cada uno de nuestros bundles)@start
eclipse.application.launchDefault=false

Luego, para ejecutar el entorno, debemos lanzar el siguiente comando desde la «línea de comandos»:

# java -jar org.eclipse.osgi.jar -console

Y voilà, ya tendremos acceso a la consola del entorno OSGi basado en Equinox.

Resumen del distribuible:

  • /osgi-runtime/
    • plugins/
      • org.apache.felix.gogo.command.jar
      • org.apache.felix.gogo.runtime.jar
      • org.apache.felix.gogo.shell.jar
      • org.eclipse.equinox.console.jar
    • app/
      • (nuestros bundles).jar
    • configuration/
      • config.ini
    • org.eclipse.osgi.jar

Aquí tenéis un ejemplo de todo lo expuesto anteriormente.

https://github.com/chuidiang/chuidiang-ejemplos/tree/master/OSGI/OSGIStandAlone

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.