ASP steht für AsciiDoctor Server Protocol
– ein einfaches Kommunikationsprotokoll zwischen einem Client und einer Asciidoctor-Serverinstanz, das alle Asciidoctor-Operationen ausführt. Es ähnelt also ein wenig LSP, wo die Sprachteile zentral von einer Serverinstanz bereitgestellt werden.
Hauptprojektseite: https://github.com/de-jcup/asp
Die Problemverfolgung erfolgt unter https://github.com/de-jcup/asp/issues
Wiki: https://github.com/de-jcup/asp/wiki
Mit dem AsciiDoctor Editor für Eclipse war es extrem schwierig, die OSGI-Abhängigkeiten in Verbindung mit asciidoctor/asciidoctorj und JRuby zu handhaben (siehe de-jcup/eclipse-asciidoctor-editor#213).
Anstatt dies immer wieder mit neuen Abhängigkeiten usw. zu bewältigen, wurde bei der Arbeit mit OSGI dieses Projekt initiiert, um eine eigenständige Lösung zu werden, die von verschiedenen Editoren verwendet werden kann, ohne dass immer neue Prozesse entstehen, sondern stattdessen eine bereits gestartete Serverinstanz wiederverwendet wird, was sehr hilfreich sein soll viel schneller als eine neue Prozesskommunikation mit einer installierten Variante.
Die Redakteure dürfen ihre Konvertierungsaufgaben nur an die Serverseite delegieren und über eine Kommunikationsschicht zum Server verfügen, die Informationen über konvertierte Ausgabeorte (oder Fehler) liefert.
Unabhängig von der tatsächlichen Installation kann es nur auf Systemen verwendet werden, auf denen Entwickler keine Möglichkeit haben, Asciidoctor zu installieren
Verfügt über ein Standard-Tool-Setup (mit HTML-, Docbook- und PDF-Unterstützung)
Kann aus mehreren IDE-Integrationen verwendet werden (Eclipse-Asciidoctor, … mehr …)
Bietet eine Client-Bibliothek zur Verwendung des Servers, was sehr praktisch ist
Es begann mit einer spring boot
Anwendung, mit Rest-Controller usw., sehr schön und praktisch, aber… Spring BootJar funktionierte nicht richtig mit asciidoctorj
+ jruby
.
Die Bereitstellung einer eigenen Fat-Jar-Lösung in Kombination mit spring boot
funktionierte nach einiger Zeit, aber ich bekam gleich zu Beginn mindestens 59 MB – das war zu viel.
Auch Spring Boot bringt viele Abhängigkeiten mit sich – und asciidoctorJ hat selbst viele. Um standortübergreifende Effekte zu verhindern, sollte das Client-Server-Protokoll so einfach wie möglich sein und nahezu keine Abhängigkeiten mehr aufweisen.
Sie können den ASP-Server entweder als externen Prozess oder als eingebetteten Server verwenden.
Für diesen Fall wurde ein spezieller Launcher erstellt. Verwenden Sie einfach ExternalProcessAsciidoctorJServerLauncher
wie in ExternalProcessExample.java und ExternalProcessWithDebugOutputExample.java
Wie die externe Variante, verwenden Sie jedoch EmbeddedAsciidoctorJServerLauncher
als Launcher. Beispiele finden Sie in Integrationstests.