ASP signifie AsciiDoctor Server Protocol
- un protocole de communication simple entre un client et une instance de serveur asciidoctor qui effectuera toutes les opérations d'Asciidoctor. C'est donc un peu similaire à LSP où les parties linguistiques sont centrales fournies par une instance de serveur.
Page principale du projet : https://github.com/de-jcup/asp
Suivi des problèmes effectué sur https://github.com/de-jcup/asp/issues
Wiki : https://github.com/de-jcup/asp/wiki
Avec AsciiDoctor Editor pour Eclipse, il était extrêmement difficile de gérer les dépendances OSGI en conjonction avec asciidoctor/asciidoctorj et JRuby (voir de-jcup/eclipse-asciidoctor-editor#213)
Ainsi, au lieu de gérer cela toujours avec de nouvelles dépendances, etc. en travaillant avec OSGI, ce projet a été lancé pour devenir une solution autonome, qui peut être utilisée par différents éditeurs sans générer toujours de nouveaux processus, mais à la place, réutilisez une instance de serveur déjà démarrée qui sera très utile. beaucoup plus rapide que de faire une nouvelle communication de processus avec une variante installée.
Les éditeurs doivent uniquement déléguer leurs tâches de conversion au côté serveur et disposer d'une couche de communication avec le serveur qui produira des informations sur les emplacements de sortie convertis (ou les erreurs).
Indépendant de l'installation réelle, peut être utilisé sur tous les systèmes sur lesquels les développeurs n'ont pas la possibilité d'installer asciidoctor
Propose une configuration d'outil standard (aura le support HTML, docbook et PDF)
Peut être utilisé à partir de plusieurs intégrations IDE (eclipse-asciidoctor, … plus …)
Fournit une bibliothèque client pour utiliser le serveur, si pratique
Cela a commencé avec une application spring boot
, avec un contrôleur de repos, etc., très sympa et pratique, mais… Spring BootJar ne fonctionnait pas correctement avec asciidoctorj
+ jruby
.
Fournir sa propre solution de pot de graisse en combinaison avec spring boot
a fonctionné au fil du temps, mais j'ai eu au moins 59 Mo au tout premier début - c'était trop.
Spring Boot est également livré avec de nombreuses dépendances - et asciidoctorJ en a plusieurs. Pour éviter les effets intersites, le protocole client-serveur doit être aussi simple que possible et n'avoir pratiquement plus de dépendances.
Vous pouvez utiliser le serveur ASP en tant que processus externe ou en tant que serveur intégré.
Pour ce cas, un lanceur spécialisé a été créé. Utilisez simplement ExternalProcessAsciidoctorJServerLauncher
comme dans ExternalProcessExample.java et ExternalProcessWithDebugOutputExample.java
Identique à la variante externe, mais utilisez EmbeddedAsciidoctorJServerLauncher
comme lanceur. Pour des exemples, regardez les tests d’intégration.