Introducción

Flo-Lang es un DSL construido con Jetbrains MPS que fue diseñado para modelar flujos de trabajo de orquestación y generar varios componentes de software que pueden ser utilizados en un Java aplicación. Actualmente, estos son:

  • Akka Event-Modelo de dominio obtenido + Finito State Máquina

  • Gráficos de Graphiz para visualizar el flujo

  • Test-FW escenarios de prueba BDD de quejas para las posibles permutaciones a través del flujo

  • Documentación embebible del modelo, en forma de Asciidoc

     MPS tradicionalmente está impulsado por IDE, por lo que hemos construido un conjunto de módulos y configuraciones que permiten una integración transparente.
    en el uso de proyectos posteriores, siempre que el proyecto posterior sea Maven basado, y se adhiere a un conjunto de convenciones.

Tenga en cuenta que mientras el MPS IDE (O Intellij con MPS Se necesita Plugins) para crear y modificar soluciones, no es necesario compilar. soluciones existentes a través de la Maven construir. El Maven El proceso de construcción descarga un MPS binario y compila la solución en un modo sin cabeza.

Los usuarios tienen varias opciones en el flujo de trabajo con respecto a la obtención MPS.

1. Instalación MPS

Trabajo actual MPS la versión para compilaciones de línea de comandos y IDE es 2022.3.1.

La forma más común de instalar MPS es a través de Jetbrains ToolBox, ya que este gestiona la instalación de diferentes versiones.

getting started 1

Descargando MPS como se describe arriba es todo lo que se necesita para comenzar. Las dependencias y complementos específicos de ICON adicionales se cargarán en MPS como parte del proyecto.

La sección a continuación describe la versión sin cabeza de MPS que se utiliza como parte del proceso de construcción del proyecto, no debe preocuparse por esto a menos que tenga una razón o interés específico.

Agrupado MPS

Al construir un proyecto IPF que incluye un subproyecto flo-lang, hay configuraciones predefinidas Maven plugins que descargue una versión de MPS y utilícelo sin cabeza para generar el resultado java código fuente.

Esto es separado e independiente de cualquier MPS la instalación que ha sido descargada manualmente en la máquina de un usuario, permite a los servidores de CI y elimina la dependencia de MPS desde la máquina host.

Puede que se esté preguntando "¿Puedo simplemente utilizar esta distribución" en lugar de necesitar descargar una versión separada. La respuesta es "sí, pero no sin un poco de esfuerzo, y no está soportada".

Es mucho más simple y se recomienda tener instalada su aplicación específica para el sistema operativo.

El problema es que la versión que se utilizó de manera headless es una distribución genérica; para hacerla "ejecutable" debe agregar algunos cambios específicos del sistema operativo a los scripts.

Linux y Windows parecen funcionar correctamente por ahora, pero para las máquinas MacOS con Apple Silicon se necesitan los siguientes cambios.

Para modelos ARM de MacOS

Dentro de la mps.sh archivo:

Reemplace la siguiente propiedad

-Djna.boot.library.path="${IDE_HOME}/lib/jna"

con el siguiente valor

-Djna.boot.library.path="${IDE_HOME}/lib/jna/aarch64"

También añada lo siguiente JVM exportaciones de seguridad a los argumentos finales del comando

``--add-opens=java.desktop/sun.lwawt.macosx=TODOS-NO NOMBRADOS

``--add-exports=java.desktop/sun.font=TODOS-SIN-NOMBRE

--add-exports=java.desktop/com.apple.eawt=TODOS-SIN-NOMBRE

``--add-exports=java.desktop/com.apple.laf=TODOS-NO-NOMBRADOS
``

``--add-exports=java.desktop/com.apple.eawt.event=TODOS-SIN-NOMBRE
El headless mps La versión se puede encontrar en la siguiente ubicación predeterminada.

<su_directorio_de_proyecto>/<su_dominio_raíz>/mps/target/mps

Configuración del Proyecto

Siempre se recomienda que para crear una nueva configuración de proyecto utilice el arquetipo IPF. Esto proporciona un mecanismo simple para iniciar un nuevo proyecto y le ofrece la plataforma de lanzamiento ideal para crear su payment flows.

Una vez que su nuevo proyecto ha sido configurado utilizando el arquetipo, podemos simplemente abrir el proyecto en MPS al seleccionar Archivo/Abrir y luego navegando a <generated_archetype_root>/domain-root/mps.