Toute la théorie ci-dessus est agréable et attrayante, mais ne vaut rien s’il n’y a pas d’outils pour les mettre en œuvre, comme l’outil open source Jamal. Bien que Jamal soit un langage macro à usage général et puisse être utilisé dans de nombreux domaines, son objectif principal est la prise en charge de la maintenance des documents. Il s’agit d’un langage macro simple à écrire et non intrusif. En l’utilisant, vous pouvez insérer des méta-informations dans la documentation à traiter par la construction automatisée. Vous pouvez l’utiliser avec n’importe quel format de document en texte brut, comme AsciiDoc, Markdown, APT, etc. Les dernières versions prennent également en charge le format DOCX à utiliser même avec Microsoft Word.
L’ensemble de macros est assez étendu et il est facile d’ajouter les vôtres. Le module de support de documentation peut collecter des informations à partir du code source de l’application sous forme d’extraits. Des extraits peuvent ensuite être transformés, extraits et insérés dans la documentation. Les informations du code peuvent être extraites à l’aide d’outils de texte utilisant le texte du code source. Cependant, dans le cas des applications Java, la transformation de document peut également collecter des informations à l’aide de la réflexion. Cela peut être fait car Jamal lui-même est une application Java.
Il peut être démarré en ligne de commande en tant que plugin Maven et extension Maven. Il est également intégré en tant que doclet et taglet pour autoriser les macros Jamal dans la documentation JavaDoc.
Vous pouvez utiliser des macros pour vérifier la cohérence de la documentation et du code. Vous pouvez marquer certaines parties du code comme un extrait, et la documentation relative à la région spécifique peut contenir le code de hachage de la pièce. Lorsque la pièce change dans le code source, l’évaluation de la macro signalera automatiquement une erreur.
L’application de Jamal est indépendante de l’automatisation de la construction. Il peut s’agir d’Antora, de JBake ou simplement d’un projet Maven avec différents plugins. L’application de Jamal est également indépendante du format de la documentation. Il peut s’agir d’AsciiDoc, Markdown, APT, etc., tant que le format de la documentation est du texte. En utilisant l’extension Word incluse dans la version en ligne de commande, il peut même être au format Microsoft DOCX Word.