Nuiton processor
2009-08-22
Présentation
Cette librairie permet la création de filtre sur les fichiers sources. Des tags de debut et de fin sont recherchés et le filtre permet de traiter la chaïne comprise dans ces tags pour qu'elle soit écrite dans le fichier cible.
Filtres existants
NoActionFilter
:classe: org.nuiton.processor.filters.NoActionFilter
Ce filtre ne fait rien
ActiveLogsCodeFilter
:classe: org.nuiton.processor.filters.ActiveLogsCodeFilter
Détecte les tags
/*# et #*/
et les supprimes, le contenu entre ces deux tags est placé dans un block try.
Cette règle est surtout utile pour des commentaires de debug ou des tests que l'on veut pouvoir activé ou non.
RemoveLogsCodeFilter
:classe: org.nuiton.processor.filters.RemoveLogsCodeFilter
Détecte les tags
/*# et #*/
et supprime tout ce qui est contenu a l'intérieur.
OptimisationFilter
:classe: org.nuiton.processor.filters.OptimisationFilter
Détecte les tags
/*% et %*/
tout ce qui n'est pas a l'exterieur de ce tag est supprimé et ce qui est dans le tag est conservé tel quel.
L'intéret de ce filtre est de permettre la créer des fichiers XML qui permettra la création de classe d'optimisation par la suite. Le XML décrivant les méthodes et permettant de faire une classe fille a la classe qui contient les tags.
:inputFileName: (.*?).java :outputFileName: $1.optxml
i18nFilter
:classe: org.nuiton.processor.filters.i18nFilter
Détecte les tags
I18n._(" et ")
tout ce qui n'est pas a l'exterieur de ce tag est supprimé et ce qui est dans le tag est conservé tel quel et ce voit ajouter un signe *=* à la fin.
L'intéret de ce filtre est de pouvoir extraire les chaînes de texte à traduire des fichiers sources. Les fichiers résultants sont de la forme des fichiers de propriétés Java.
:inputFileName: (.*?).java :outputFileName: $1.i18n
licenseFilter
:classe: org.nuiton.processor.filters.LicenseFilter
Détecte les tags
/*##% et ##%*/
tout ce qui n'est pas a l'exterieur de ce tag est conservé et ce qui est dans le tag est replacé par la license donnée.
L'intéret de ce filtre est de pouvoir changer facilement la licence d'un code source java.
GeneratorTemplatesFilter
:classe: org.nuiton.processor.filters.GeneratorTemplatesFilter
Détecte les tags
/*{ et }*/
le contenu est alors lui même parsé avec le filtre GeneratorTemplatesFilterIn. Le résultat global est placé dans un::
output.write("...<le contenu>...");
GeneratorTemplatesFilterIn
:classe: org.nuiton.processor.filters.GeneratorTemplatesFilterIn
Détecte les tags
<% et %>
dans le texte externe aux tags les guillemets sont coté ainsi que les retours chariots de façon à ce que le texte puisse aller dans une chaîne de caractères Java. Si le texte à l'intérieur des tags commence par un signe **=**, alors il est remplacé par::
"+ ...<contenu du tag sans le =>... +"
Sinon il est remplacé par::
"); ...<contenu du tag>... output.write("
Règle ant
Voici un exemple d'utilisation de la règle ant.
<processor filters="org.nuiton.processor.filters.GeneratorTemplatesFilter,\ org.nuiton.processor.filters.GeneratorTemplatesFilter" srcdir="${srcdir}" destdir="${gendir}" includes="**/*.java" fileInPattern="(.*?).javap" fileOutPattern="$1.java" />
Dans cette exemple, deux filtres seront appliqué, les fichiers qui seront processés sont tous les fichiers java du répertoire $srcdir et les fichiers résultants se retrouveront dans le répertoire $gendir et leur extension aura été modifié de *.javap* en *.java*
Plugin maven
Un plugin maven est disponnible à l'adresse suivante maven-processor-plugin . Il permet l'utilisation depuis maven de NuitonProcessor.