ASP significa AsciiDoctor Server Protocol
: un protocolo de comunicación simple entre un cliente y una instancia del servidor asciidoctor que realizará todas las operaciones de Asciidoctor. Entonces, es un poco similar a LSP, donde las partes del lenguaje son proporcionadas centralmente por una instancia de servidor.
Página principal del proyecto: https://github.com/de-jcup/asp
Seguimiento de problemas realizado en https://github.com/de-jcup/asp/issues
Wiki: https://github.com/de-jcup/asp/wiki
Con AsciiDoctor Editor para eclipse fue extremadamente difícil manejar las dependencias de OSGI junto con asciidoctor/asciidoctorj y JRuby (ver de-jcup/eclipse-asciidoctor-editor#213)
Entonces, en lugar de manejar esto siempre nuevamente con nuevas dependencias, etc., se inició trabajando con OSGI, este proyecto se convirtió en una solución independiente, que puede ser utilizada por diferentes editores sin generar siempre nuevos procesos, sino que reutiliza una instancia de servidor ya iniciada que será muy útil. mucho más rápido que hacer una nueva comunicación de proceso a una variante instalada.
Los editores solo delegarán sus tareas de conversión al lado del servidor y tendrán una capa de comunicación con el servidor que producirá información sobre las ubicaciones de salida convertidas (o errores).
Independientemente de la instalación real, se puede utilizar en cualquier sistema en el que los desarrolladores no tengan la posibilidad de instalar asciidoctor.
Viene con configuración de herramientas estándar (tendrá soporte HTML, docbook y PDF)
Se puede utilizar desde múltiples integraciones IDE (eclipse-asciidoctor,… más…)
Proporciona una biblioteca cliente para usar el servidor, muy conveniente
Comenzó con una aplicación spring boot
, con controlador de descanso, etc., muy agradable y conveniente, pero... Spring BootJar no funcionó correctamente con asciidoctorj
+ jruby
.
Proporcionar una solución propia de fat jar en combinación con spring boot
funcionó después de un tiempo, pero obtuve al menos 59 MB al principio; esto fue demasiado.
Además, Spring Boot viene con muchas dependencias, y asciidoctorJ tiene muchas. Para evitar efectos entre sitios, el protocolo cliente-servidor debe ser lo más simple posible y casi no tener más dependencias.
Puede utilizar el servidor ASP como proceso externo o como servidor integrado.
Para este caso se creó un lanzador especializado. Simplemente use ExternalProcessAsciidoctorJServerLauncher
como se hace en ExternalProcessExample.java y ExternalProcessWithDebugOutputExample.java
Igual que la variante externa, pero usa EmbeddedAsciidoctorJServerLauncher
como iniciador. Para ver ejemplos, consulte las pruebas de integración.