¿Cómo compilar y ejecutar Onesait Platform con el Entorno de Desarrollo (DevEnv) de Plataforma?
Documentación actualizada para Entorno de Desarrollo (DevEnv) de 2023 de Plataforma sobre Windows.
- 1 Introducción
- 2 Paso 1: Descargar el Entorno de Desarrollo para Windows
- 3 Paso 2: Configurar git
- 4 Paso 3: Descargar y compilar el código de la plataforma
- 5 Paso 4: Configurar el IDE de Plataforma por primera vez
- 6 Paso 5: Cargar código fuente de Plataforma en el IDE por primera vez y compilarlo
- 7 Paso 6: Ejecutar la ConfigDB de Plataforma
- 8 Paso 7: Ejecutar la RealTimeDB de Plataforma sobre Mongo
- 9 Paso 8: Inicializar ConfigDB de Plataforma desde IDE
- 10 Paso 9: Ejecutar Control Panel de Plataforma
- 11 Paso 10: Ejecutar otros módulos de Plataforma
Introducción
Esta guía describe cómo instalar y utilizar el Entorno de Desarrollo desde la plataforma.
El DevEnv tiene el objetivo de arrancar cuanto antes con plataforma, de modo que incluye todas las herramientas necesarias para ejecutar la plataforma (el JDK de Java, Maven para la compilación, MariaDB como ConfigDB, MongoDB como RealTimeDB, ...)
El uso del SDK de Plataforma es opcional, si eres un desarrollador experto puedes utilizar tus propias herramientas; entonces probablemente prefieras empezar con esta guía: (Develop) Cómo compilar y ejecutar el Panel de Control de la Plataforma de Eclipse
Paso 1: Descargar el Entorno de Desarrollo para Windows
Esta sección muestra cómo instalar el entorno de desarrollo de la plataforma en un ordenador con Windows.
Nos descargaremos la última versión del Entorno de Desarrollo.
El Entorno de Desarrollo se distribuye en formato ZIP, una vez descargado a nuestro equipo lo descomprimiremos en un directorio (por ejemplo C:\OnesaitPlatform_DevEnv)
Una vez descomprimido, iremos a la carpeta donde lo hayamos descomprimido y ejecutaremos el archivo start.bat. Esto crea la unidad virtual S: apuntando al directorio donde descomprimí el SDK. A partir de aquí trabajaré siempre sobre S:
Paso 2: Configurar git
La primera vez que lancemos el entorno tendremos que configurar el cliente de Git:
Abriremos una línea de comandos en S:\ ejecutando S:\start.bat
Podemos probar a ejecutar estos comandos (java .version, mvn -v y git -v) para ver las versiones de parte del software incluido.
Ejecutaremos git config --list para ver la configuración.
Si no tenemos la propiedad http.sslverify=false, la estableceremos ejecutando git config --global http.sslverify false
Para trabajar con ficheros grandes habilitaremos la opción con: git config --global core.longpaths true
También podemos configurar el nombre y correo electrónico del usuario de Git:
git config --global user.name "mi_nombre"
git config --global user.email "mi_correo"
Paso 3: Descargar y compilar el código de la plataforma
En la línea de comandos sobre S:\ navegaré a S:\sources\onesaitplatform-ce
Desde esta carpeta haré el clone del repositorio, que me pedirá el usuario y password del repo.
Versión Comunidad: git clone https://github.com/onesaitplatform/onesaitplatform-cloud
Versión Enterprise (equipo Producto): git clone https://gitlab.devops.onesait.com/onesait/platform/engine/onesait-platform/onesait-cloud-platform.git Al intentar descargar este repositorio del gitlab corporativo (https://gitlab.devops.onesait.com/onesait) al tener activado el doble factor de autenticación me encontraré con este error al poner los credenciales:
Entonces tendré que acceder al Gitlab con mis credenciales y dentro de Access Tokens:
crearé un Token para poder acceder:
y ahora usaré este Token como password al conectarme:
Una vez descargado iremos al directorio donde hemos clonado el repositorio. Compruebo en qué rama estoy ejecutando git status, en función del repo descargado obtendré diferente valor
Iremos al directorio sources y ejecutaremos >mvnnoTest clean install para compilar todo el código (mvnnoTest es un alias de mvn -D maven.test.skip=true)
La primera compilación llevará varios minutos porque Maven tendrá que descargarse todas las dependencias (el Maven Repo está configurado en s:\m2_repo).
Si no hay ningún problema obtendremos como resultado:
IMPORTANTE: Es posible que al compilar se produzca un error de certificado. En tal caso, es necesario dirigirse a https://nexus.onesaitplatform.com/nexus, y a https://jaspersoft.jfrog.io/ , y descargar los certificados padre e hijo de cada uno de estos dos servidores. A continuación habrá que importarlos en la JVM con la que se esté trabajando y volver a compilar.
Paso 4: Configurar el IDE de Plataforma por primera vez
El SDK de Plataforma incluye como IDE Eclipse IDE for Java Developers , hemos elegido Eclipse sobre otras alternativas como JBoss IDE o STS por ser un IDEA más lgiero.
En este punto explicaremos cómo configurarlo.
Abrimos una línea de comandos con S:\start.bat
Arrancamos el Eclipse ejecutando desde la línea de comandos S:>eclipse. Si todo va bien la línea de comandos se mantendrá abierta.
En File>Switch Workspace, nos aseguramos de estar usando el espacio de trabajo S:\tools\eclipse_workspace
En Window>Preferences>Java>Installed JRES, me aseguro de que estoy usando esta JVM s:\tools\jdk-17 como la JVM con la que compilar
IMPORTANTE: Para versiones de Plataforma anteriores a la versión 5, la Plataforma usa Java8 como JVM. Para poder ejecutarla sin problema debo configurar y usar Java8 como JRE en Eclipse.
Para eso en Window>Preferences>Java>Installed JRES, me aseguro de que estoy usando esta JVM s:\tools\jdk8 como la JVM con la que compilar y ejecutar.
En Window>Preferences>Maven me aseguro de que no están marcadas las opciones Download Artifact Sources y Download Artifact Javadoc (para evitar que Eclipse se los descargue):
En Window>Preferences>Maven>Installations, configura s:\tools\mvnd-0.9.0 como la instalación por defecto de Maven (MVND hace que las compilaciones de Maven sean mucho más rápidas):
En Window>Preferences>Maven>Usser Settings, selecciono s:\tools\mvnd-0.9.0\conf\settings.xml en la opción Global Seetings:
En Window>Preferences>Maven>Error/Warnings marcaré con Ignore todas las opciones:
Paso 5: Cargar código fuente de Plataforma en el IDE por primera vez y compilarlo
La primera vez que arranque el IDE tendré que cargar el código de los diferentes módulos de plataforma:
Abrimos una línea de comandos con S:\start.bat y arrancamos el IDE con eclipse.
En el ID en la opción de menú File>Import>Maven>Existing Maven Projects, selecciono el directorio donde tengo los fuentes de plataforma (pj en s:\sources\onesaitplatform\onesait-cloud-platform\sources\)
En esta primera ejecución elegiré todos los proyectos (luego puedo tener abiertos sólo los que necesite para el tipo de trabajo que tenga que hacer). La primera vez el Eclipse tardará un tiempo en descargarse las dependencias de Maven y en compilar:
La primera vez nos encontraremos con este error de un plugin de Maven, para solucionarlo bastará con dejar el Resolver Later y dar Finish.
Si todo ha ido bien, tras estos pasos (y algo de paciencia) tendré compilado el proyecto completo:
Paso 6: Ejecutar la ConfigDB de Plataforma
Una vez compilado el código de la Plataforma inicializaremos los servicios básicos de persistencia de Plataforma. Empezaremos por lanzar la ConfigDB (sobre MariaDB).
Para ejecutar los módulos de Plataforma (por ejemplo el ControlPanel) es necesario que esté arrancada la ConfigDB
Abrimos una línea de comandos con S:\start.bat
Arrancamos la ConfigDB (sobre MariaDB) ejecutando ConfigDB.start desde la línea de comandos. Si todo va bien la línea de comandos se mantendrá abierta y aparecerá un texto como esto:
Ahora abriremos una conexión con la ConfigDB para verificar que los esquemas de configuración están creados. Para eso desde una línea de comandos en S: ejecutaré ConfigDB.browser
(este comando nos abre un cliente HeidiSQL). Configuraremos la conexión al MariaDB local con 127.0.0.1:3306 root/changeIt!
Desde el browser puedo ver los esquemas onesaitplatform_config y onesaitplatform_master_config (en el primer momento vacíos)
Paso 7: Ejecutar la RealTimeDB de Plataforma sobre Mongo
Tras lanzar la ConfigDB (como hemos dicho, sobre MariaDB) ahora lanzaré la RealTimeDB sobre MongoDB (versión 6.0.4):
Abrimos una línea de comandos con S:\start.bat
Arrancamos MongoDB ejecutando MongoDB.start sobre la línea de commandos. Si todo va bien la línea de comandos se mantendrá abierta y aparecerá algo como esto:
Puedo abrir la shell de Mongo ejecutando desde la línea de comandos MongoDB.shell desde la que puedo conectarme a las BDs, hacer consultas sobre las colecciones:
Paso 8: Inicializar ConfigDB de Plataforma desde IDE
La Plataforma tiene una ConfigDB donde almacena todas sus configuraciones.
Para que funcione plataforma, esta ConfigDB debe estar inicializada (con sus datos de configuración), en este paso vamos a ver cómo inicializarla, esto se hace con el proyecto config-init
La ConfigDB puede cambiar entre major releases. A la hora de desarrollar lo más fácil es borrar en la ConfigDB los esquemas onesaitplatform-config y onesaitplatform-master-config a través del ConfigDB.Browser y volver a inicializarla como vamos a hacer en este paso.
Abrimos una línea de comandos con S:\start.bat y arrancamos el IDE ejecutando eclipse.bat desde la línea de comandos.
Nos aseguramos de que tenemos la ConfigDB lanzada (Paso 6 de este tutorial).
En el IDE vamos al proyecto onesaitplatform-config-init y localizamos la clase SystemConfigInitApplication (en el paquete com.minsait.onesait.platform.systemconfig.init).
Esta clase se encarga de inicializar la plataforma, no sólo la ConfigDB, aunque ahora sólo nos interesa inicializar la ConfigDB.
Sobre la clase, con el botón derecho selecciono Run As>Java Application:
Para ver si se ha inicializado la ConfigDB puedo mirar los logs en la Consola o acceder a la ConfigDB ejecutando s:\ConfigDB.browser y ver si las tablas se han populado, por ejemplo en la tabla ontology en el esquema onesaitplatform_config:
Paso 9: Ejecutar Control Panel de Plataforma
Una vez cargados los datos de configuración en la ConfigDB puedo lanzar el Control Panel de Plataforma.
El Control Panel es un módulo de plataforma que no requiere la ejecución de ningún otro para funcionar y ofrece un UI Web, APIs REST de gestión además de actuar como un nodo CacheServer.
En función de la labor que vayamos a hacer sobre el Control Panel puede ser recomendable también tener lanzado el MongoDB conforme indicammos en el paso 7.
(Si no está arrancado el Eclipse, abrimos una línea de comandos con S:\start.bat y arrancamos el IDE con eclipse.
Vamos el proyecto onesaitplatform-controlpanel y abrimos el archivo application.yml que se encuentra en /src/main/resources:
Comprobamos que las propiedades authentication.oauth.enabled y authentication.oauth.osp-keycloak están a false, y modificamos su valor en caso contrario
Estas propiedades permiten habilitar/deshabilitar la autenticación con el Keycloak IM de Plataforma, si quisiéramos habilitarla aquí tenemos una guía de como levantarlo en local: https://es.onesaitplatform.com/space/DOC/4120641552/¿Cómo+levantar+Keycloak+como+Identity+Manager+en+Entorno+local%3F
Dentro del proyecto vamos a la clase ControlPanelWebApplication (en paquete com.minsait.onesait.platform.controlpanel)
Sobre la clase, con el botón derecho selecciono Run As>Java Application
Tras unos segundos en la consola de ejecución veré esta traza (que indica que la aplicación se ha arrancado y no se ha podido registrar en el Monitoring UI de Plataforma):
Ahora puedo acceder al ControlPanel accediendo a http://localhost:18000/controlpanel/
Puedo acceder al ControlPanel con los usuarios
Paso 10: Ejecutar otros módulos de Plataforma
El ControlPanel es un módulo independiente, el resto de módulos necesitan la ejecución de al menos el módulo CacheServer (proyecto onesaitplatform-cacheserver).
Para arrancar este módulo ejecutaré la clase CacheServerApplication (paquete com.minsait.onesait.platform)
Tras esto puedo ejecutar el resto de módulos de plataforma, los módulos de plataforma se encuentran en la carpeta modules y son estos.
El resto son servicios y librerías que se ejecutan dentro de estos módulos
¡Eso es todo! ¡¡¡Esperamos que lo disfrutes!!!