¿Cómo crear un nuevo módulo de la plataforma?

La extensión de la plataforma puede hacerse mediante la adición de nuevos módulos. Para ello se ha dejado disponible una plantilla con la infraestructura de código mínima necesaria para poder desarrollar un módulo.

Paso 1: descargar el código fuente de la plataforma

Para poder descargar la plantilla debes descargar el código fuente de la plataforma:

git clone https://github.com/onesaitplatform/onesait-cloud-platform.git

Posicionarte en la rama master:

git checkout master


Paso 2: copiar la plantilla de módulo junto al resto de módulos de la plataforma

Una vez hecho esto, ve hasta el directorio /onesait-cloud-platform/sources/examples

Dentro de este directorio, localiza la carpeta con el nombre platform-module-template. Tienes que copiar la carpeta entera al directorio: /onesait-cloud-platform/sources/modules

Este directorio contiene:

pom.xml (1)
src/
    ModuleTemplateApplication.java (2)
    application.yml (3)
    application-docker.yml (4)
docker/
   Dockerfile (5)


(1) El pom.xml es un fichero que necesita Maven y que contiene información del proyecto así como la configuración del mismo, dependencias de librerías, plugins de empaquetado, etc...

Puedes editar este fichero, por ejemplo para darle nombre al módulo:

Contiene las dependencias con las librerías de la plataforma:

Así como las dependencias con el framework de Spring:

Y otras dependencias necesarias. En esta sección puedes añadir aquellas librerías que necesitemos.

Debes copiar el directorio completo de la plantilla del módulo con el resto de módulos de la plataforma

Paso 3: compilar el código fuente del módulo nuevo y la plataforma

Desde el directorio sources puedes lanzar el comando mvn clean install que se encargará de descargar las dependencias y compilar los fuentes, así como generar los .class y empaquetados del módulo (ficheros .jar). Previamente será necesario editar el pom.xml de este directorio y añadir tu módulo:

Una vez ejecutado el mvn clean install debería de ver el siguiente resultado:

Paso 4: ejecutar el módulo nuevo (con y sin Eclipse)

(2) Los distintos módulos de la plataforma están escritos en lenguaje Java y usan el stack de Spring como framework de desarrollo, en concreto SpringBoot. Para ello se ha dejado definida la clase principal de la aplicación con las anotaciones necesarias, las principales:

@EnableAutoConfiguration
@ComponentScan

Con estas dos notaciones dentro de la clase principal y tras importar el módulo, puedes lanzar la ejecución del mismo dentro de Eclipse:

O fuera de eclipse (previamente habiendo lanzado el comando mvn clean install desde /sources). Para ello, dentro del directorio /onesait-cloud-platform/sources/modules/platform-module template/target encontrarás dos ficheros .jar. Uno de ellos, el acabado en -exec.jar, es un fichero que incluye todas las dependencias, así como un Tomcat embebido en el cual se ejecutará tu módulo con el comando:

java -jar onesaitplatform-moduletemplate-1.1.0-SNAPSHOT-exec.jar

(3) y (4) Ficheros de configuración necesarios de SpringBoot, puertos de escucha, contexto de la aplicación, configuración de conexión a la base de datos de configuración, realtime, kafka, router, etc...

Paso 5: generar imagen Docker del módulo y ejecutar el contenedor

El fichero application-docker.yml contiene propiedades específicas, y que sobreescriben las del fichero application.yml, para la ejecución del módulo dentro de un contenedor Docker.

(5) El Dockerfile es el fichero que contiene las instrucciones necesarias para generar la imagen Docker de la plataforma. Para ello es necesario tener el Docker engine previamente instalado. Para generar la imagen sólo es necesario copiar el jar onesaitplatform-moduletemplate-1.1.0-SNAPSHOT-exec.jar ubicado en el directorio /target del módulo al directorio /docker y ejecutar la sentencia:

docker build -t onesaitplatform/module:latest .

Si ejecutas el comando docker images, podrás ver la imagen que acabas de crear.

Con esto ya tendremos la imagen generada en local. Para poder arrancar el contenedor ejecutamos el comando:

docker run -t -p 19500:19500 onesaitplatform/module:latest

Puedes acceder a tu módulo mediante un navegador web escuchando en el puerto 19500: http://localhost:19500/



(c) 2020 Indra Soluciones Tecnologías de la Información, S.L.U.